フォルダ内のファイルを再帰的にリネームするバッチファイルの書き方

2012年5月27日

例として、特定フォルダ配下の、拡張子が"log"のファイルを"txt"に変更したい場合。
要はこのような処理をbatファイルで一気にやってしまいたい場合。
hogehoge.log ⇒ hogehoge.txt
バッチファイルには以下のように書けばOKです。


for /r %%i in (*.log) do ren “%%i" “%%~ni.txt"
【解説】
・for によるループは以下のように書く。
————-
for オプション %%変数 in (検索パターン) do (
処理
)
————-
・for /r で再帰的に実行できる。
・変数を %%i とした場合、 以下の意味になる。
————-
%%i – 相対パス
%%~fi – フルパス
%%~di – ドライブ文字とコロン
%%~pi – ドライブ文字とコロンを除いたディレクトリ パス
%%~ni – ファイル名
————-
・ren コマンドでリネームを実行。
————-
ren リネーム元 リネーム先
————-
以上