作成日時順にファイルを整理したいときにファイル名の頭に作成日時を追加するスクリプトです。
PowerShellのスクリプトは基本的にISEかPowerShellの画面を開いて実行します。
バッチファイルからの起動方法についてはこちら。
→ バッチファイルからPowerShellのスクリプトを起動する
Set-Location "C:\Users\user\Pictures\My Cloud"
$movieFiles=Get-Childitem "*.MTS" -File
$movieFiles|foreach{
$newName=$_.LastWriteTime.ToString("yyyyMMdd-HHmmss")+$_.Name
Rename-Item $_.FullName -NewName $newName
}
まずはファイルの入っているフォルダに移動します。
Set-Location "C:\Users\user\Pictures\My Cloud"
つぎにファイルの拡張子を指定します。
$movieFiles=Get-Childitem "*.MTS" -File
拡張子が表示されていないときは、エクスプローラーの「表示」タブで「ファイル名拡張子」のチェックをします。
$newName=$_.LastWriteTime.ToString("yyyyMMdd-HHmmss")+$_.Name
$.LastWriteTimeはそのままだと日付型なので、ファイル名にするとエラーが出ますから、ToStringやformatで文字列型に変換します。
日付のみをファイル名にすると、同じ作成日のファイルがあるとエラーになるので、+$.Nameと元々のファイル名を後ろにつけることでエラー回避しています。拡張子も加えられます。
yyyyMMdd-HHmmssをyyyymmdd-HHmmssと記載しないよう気をつけてください。
Windows系の言語は基本的に大文字小文字を区別しないので私含めて意識しない人が多いと思いますが、mmは分、MMは月なので、MMを小文字にすると年"分"日となってしまいます。
ちなみに、HHをhhとしても24時間表記が12時間表記になるだけなので影響は少ないです。