RENAME_REGEX.cmd ファイル名を正規表現で置換する
Windows 7 | コマンドプロンプト | PRFM_TOOLS 1.1.0 - | RENAME_REGEX |
1.コマンドプロンプトで正規表現を使ったファイル名置換を実現する
1−1.ファイル名の一括変換、正規表現が使えると便利ですよね?
Windowsのコマンドプロンプトから呼び出せるファイル名変換ツールを作成しました。特定のパターンに一致したファイル名を変換ルールに従って変換するためのツールです。いずれも Microsoft正規表現の構文(http://msdn.microsoft.com/ja-jp/library/cc392020.aspx) で指定できます。この "RENAME_REGEX.cmd" は当サイトで配布している ユーティリティ群(PRFM_TOOLS) の Ver 1.1.0 以上に収録されています。左記ページのリンクからダウンロードして解凍すれば利用できます。フォルダ名の変換には対応していません。
2.RENAME_REGEX.cmd の仕様
2−1.コマンド仕様
今回作成した RENAME_REGEX.cmd の仕様は下表の通りです。もし本ツールを使用して損害が発生したとしても、その内容や損害の大小に関わらず一切の保証はできませんので、ご了承の上ご使用下さい。
PRFM_TOOLS\FILE\RENAME_REGEX.cmd [option] #1, #2, #3 | ||||||||||||||||||||||
|
2−2.使用例
例えばPRFM_TOOLSが "c:\tools" にインストールされている場合として、変換対象のファイルが "c:\temp\" に配置されていたとします。変換対象のファイルは「Page1.txt」、「Page2.txt」の2ファイルで、「Index.txt」と「Page2 - コピー.txt」は変換対象外とします。"Page1"と"Page2"の部分を"Page01"と"Page02"に変換する場合の例を紹介します。以下は当サイトで配布している ユーティリティ群(PRFM_TOOLS) を C:\tools\ に配置している場合の例です。コマンド呼び出しは絶対パス指定でも相対パス指定でも問題ありません。
: 変換内容が想定通りか確認する(テストモードで確認)
C:\tools\PRFM_TOOLS\FILE>
RENAME_REGEX C:\temp Page([0-9]\.txt) Page0$0
変換対象:Page([0-9]\.txt)
【対象ディレクトリ】C:\temp
【変換対象外のファイル名】Index.txt
【変換前】Page1.txt 【変換後】Page01.txt
【変換対象外のファイル名】Page2 - コピー.txt
【変換前】Page2.txt 【変換後】Page02.txt
※テストモードで実行しました。実際のファイル名に変更はありません。
※実際のファイル名を変更する場合は /A オプションを指定します。
C:\tools\PRFM_TOOLS\FILE>
: 変換内容が正しければ /A オプションを指定して実行する(実行モードで適用)
C:\tools\PRFM_TOOLS\FILE>
RENAME_REGEX /A C:\temp Page([0-9]\.txt) Page0$0
変換対象:Page([0-9]\.txt)
【対象ディレクトリ】C:\temp
【変換前】Page1.txt 【変換後】Page01.txt
【変換前】Page2.txt 【変換後】Page02.txt
※実行モードです。ファイル名の変更を行いました。
C:\tools\PRFM_TOOLS\FILE>
これでファイル名の変換が完了します。
3.トラブルシューティング
3−1.ファイル名として使えない文字を指定した場合
正規表現の誤りならテストモードで確認できますが、変換結果にファイル名として使えない文字を含めてしまった場合はテストモードでは検出できず、実行モードで初めてエラーとなります。出力は以下の様になります。
: ファイル名に使用できない"\"を変換後文字列に含めてしまった場合
C:\tools\PRFM_TOOLS\FILE>
RENAME_REGEX C:\temp Index Idx:1
変換対象:Index
【対象ディレクトリ】C:\temp
【変換前】Index.txt 【変換後】Idx:1.txt
[ERROR] 52:ファイルの名前または数が不正です。
※実行モードです。ファイル名の変更を行いました。
C:\tools\PRFM_TOOLS\FILE>
3−2.エラー発生時のファイル名変換状況
ファイル名変換が何らかの理由で変換エラーとなったとしても変換処理は最後まで進み、エラーが発生したファイルを除いてファイル名変換が完了した状態で処理を終えます。
4.より詳細な情報
より実装寄りの詳細な説明はソースコード中のコメントが充実しているので、ソースをダウンロードしてチェックしてみてください。