Image-1.jpg
Image-2.jpg
...
Image-9.jpg
Image-10.jpg
Image-11.jpg
...
Image-99.jpg
Image-100.jpg
Image-101.jpg
...
Image-150.jpg
Explorer ではこの順に並ぶが、単純にアルファベット順に処理するアプリでは Image-1.jpg、Image-10.jpg、Image-11.jpg … といった順序で処理されてしまう。
そこで PowerShell を使ってファイル名部分の桁数を、Image-1.jpg → Image-001.jpg というように揃えてみる。
正規表現を使ってファイル名を生成する
ファイル名を変更したいファイルがあるフォルダで、以下の2つのコマンドを実行することで期待通りに変更することができる。
Get-ChildItem . | Rename-Item -NewName { $_.Name -replace 'Image\-([0-9])\.jpg','Image-00$1.jpg' } Get-ChildItem . | Rename-Item -NewName { $_.Name -replace 'Image\-([0-9])([0-9])\.jpg','Image-0$1$2.jpg' }
1つ目のコマンドで
Image-1.jpg
といった一桁ファイル名を Image-001.jpg
と3桁化する。
2つ目のコマンドでは2桁ファイル名を3桁化する。
1つのコマンドでまとめてできないかとも思ったが実用上問題ないのでこれで良しとしよう。
Alias を 使って、
dir . | ren -NewName { $_.Name -replace 'Image\-([0-9])\.jpg','Image-00$1.jpg' } dir . | ren -NewName { $_.Name -replace 'Image\-([0-9])([0-9])\.jpg','Image-0$1$2.jpg' }
とやっても可。これで、
Image-001.jpg
Image-002.jpg
...
Image-009.jpg
Image-010.jpg
Image-011.jpg
...
Image-099.jpg
Image-100.jpg
Image-101.jpg
...
Image-150.jpg
とよい感じになった。
0 件のコメント:
コメントを投稿