PowerShellによりフォルダ内の各ファイルの名前に更新日時を追記するサンプルコードを紹介します。
仕様
以下の通り、フォルダ内にいくつかのファイルがあります。
変なファイルネームネーミングルールの単体結果エビデンスや、一定時間間隔でキャプチャした画像というのがよくありそうです。
実行前
これらのファイルの後ろに更新日時を追記してみます。
実行後
ファイル
ソースコード
$files = Get-Item *.xlsx
foreach($file in $files){
$newfileName = $file.BaseName + "_" + $(Get-ItemProperty $file).LastWriteTime.ToString("yyyyMMdd-hhmmss") + $file.Extension
Rename-Item $file $newfileName
}
Pause
Get-Itemで「*.xlsx」を指定することによってExcelのみを取得するようにしていますが、他の拡張子に変更すればテキストやワードファイルも可能です。
また、$newFileへの格納内容は下記のとおりです。
命令 | 説明 |
---|---|
$file.BaseName | $fileの拡張子なしのファイル名です。 |
$(Get-ItemProperty $file).LastWriteTime.ToString(“yyyyMMdd-hhmmss”) | $fileのプロパティから更新日時を取得し、”yyyyMMdd-hhmmss”の形式の文字列を取得します。 |
$file.Extension | $fileの拡張子です。 |
Rename-Itemは変更前、変更後のファイル名を指定してファイル名を変更できます。
ファイル配置
以下のようにソースコードと更新対象のファイルを同じディレクトリに格納します。
テスト実行
実行は右クリックメニューの「PowerShellで実行」をクリックします。
すると、各Excelファイルの末尾に更新日時が付加されていることが確認できました。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | PowerShell | 5.1 |
以上です。
コメント