大量格納されたファイルを更新日付ごとにフォルダ分けする、PowerShellスクリプトのサンプルを紹介します。
仕様
フォルダに格納されたファイルを更新日付ごとに、サブフォルダに格納します。
実行イメージ
下記のファイルの例だと、4/17のファイルが1つ、2/25のファイルが4つ格納されています。
この場合は各ファイルが、フォルダ「20220417」、フォルダ「20220225」へ割り振りされます。
ソースコード
ソースコードは下記のとおりです。
$currentPathは日付ごとにフォルダ分けしたいファイルが存在するパスです。
適当に変えてください。
更新日付ごとにフォルダ分け.ps1
$currentPath = "C:\temp\powershell\file\"
#作業フォルダ移動
Set-Location -Path $currentPath
#フォルダのファイル一覧取得
$items = Get-ChildItem -File
#ファイルごとにループ
foreach ($item in $items) {
#フォルダ名作成(年月日)
$newFolder = $item.LastWriteTime.ToString("yyyyMMdd")
#既存フォルダ有無確認
if ( -not (Test-Path $newFolder) ) {
#新フォルダ作成
New-Item $newFolder -ItemType Directory
}
#ファイル移動
Move-Item $item $newFolder
}
Read-Host
実行手順
では実行してみましょう。
先ほどのソースコードを、拡張子*.ps1として保存し実行します。
実行は右クリックメニュー「PowerShellで実行」で実行します。
実行すると下記のような画面が出るので、そのままエンターを押下でよいです。
実行前
実行前はフォルダがなく、ファイルのみが置かれたフォルダ構成です。
実行後
実行後は日付ごとにフォルダが作成され、ファイルがフォルダに格納されています。
フォルダの中はどうでしょうか?
20220225フォルダ
20220417フォルダ
問題なさそうです。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | PowerShell | 5.1 |
以上です。
コメント