![Win 7で名前変更パターンを変更する](https://rvso.com/image/1313351/Win%207%E3%81%A7%E5%90%8D%E5%89%8D%E5%A4%89%E6%9B%B4%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B.png)
Win7 で大量の名前変更を行うための組み込みメカニズムを変更することは可能ですか?
たとえば、このようなパターンを使用することは可能でしょうか?
name-001.ext
name-002.ext
答え1
スクリプト言語を使うこともできます。PowerShell は Win7 ボックスにあるはずです。以下はワンライナーです:
PS> get-childitem | foreach { $i++; $new = "name-{0:D3}" -f $i + $_.Extension; rename-item $_ $new } ; $i=0
ここでは、Get-ChildItem
現在のディレクトリの内容を列挙するために を使用します。次に、結果の FileInfo オブジェクトを短い ScriptBlock にパイプして、次の処理を実行します。
- カウンター変数を増分する
- 組み合わせて新しい名前を作成する
- カウンターの有効数字3桁を含むフォーマットされた文字列
- 元のFileInfoオブジェクトのファイル拡張子
Rename-Item
元のFileInfoオブジェクトと新しい名前を使用する
最後の項目は $i カウンターをリセットします。これは、スクリプトを最後に実行したときの最終値より 1 多い値ではなく、最初のファイル名が 1 で始まるように実験するときに役立ちます (なぜ私が知っているかは聞いてください)。
これらをまとめると、次のようになります。
次の内容のディレクトリで実行されます。
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/3/2011 11:45 AM 455 save-times.csv
-a--- 2/23/2012 4:03 PM 553376 save_patch.zip
-a--- 2/1/2012 10:55 AM 131280 user-gp.html
-a--- 6/7/2011 11:58 AM 38557 wks.xml
-a--- 5/23/2011 3:28 PM 16384 xmllint.exe
次の結果が得られます。
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/3/2011 11:45 AM 455 name-001.csv
-a--- 2/23/2012 4:03 PM 553376 name-002.zip
-a--- 2/1/2012 10:55 AM 131280 name-003.html
-a--- 6/7/2011 11:58 AM 38557 name-004.xml
-a--- 5/23/2011 3:28 PM 16384 name-005.exe
詳細については、TechNetドキュメントをご覧ください。Get-ChildItem コマンドレットの使用そしてForeach-Object コマンドレットの使用さあ、試してみてください!
答え2
Windowsがバッチリネームに使用するフォーマットを変更する方法を見つけることができませんでした。しかし、問題なく処理できるサードパーティのユーティリティがあります。私は個人的にhttp://www.bulkrenameutility.co.uk/Download.phpしかし、他にもあります。