やりたいこと
- ファイル名の末尾にある固定文字列を削除したい。
- バッチで。
- ディレクトリ内を一括で置換したい。
ディレクトリには以下のファイルがある想定
hugahuga-debug.txt
hogehoge-debug.txt
今回はファイル名の末尾にある文字列の"-debug"を削除し、"hugahuga.txt"のようなファイル名にします。
rename.bat
for %%F in (*-debug.txt) do call :sub "%%F"
goto :EOF
:sub
set BEFORE=%~1
set FILENAME=%~n1
set EXTENSION=%~x1
set AFTER=%FILENAME:~0,-6%%EXTENSION%
ren "%BEFORE%" "%AFTER%"
結果
hugahuga.txt
hogehoge.txt
やってること
- バッチと同じディレクトリ内のファイルで"*-debug.txt"に引っかかるファイルを順に対象にする。
- BEFOREに変更前のファイル名が代入される。
- FILENAMEに変更前のファイル名から拡張子を除き、代入される。
- EXTENSIONに拡張子が代入される。
- AFTERにFILENAMEの末尾6文字(ここでは"-debug"が該当)を削除し、EXTENSIONをくっつける。
- renコマンドでリネームする。
こちらを参考にさせていただきました
http://wpqtqpqp.hatenablog.com/entry/2016/01/24/115618