バッチファイルでテキストファイル内の文字列置換
Windowsのバッチファイルでテキストファイル内の特定の文字列を置換する方法について。
入力ファイル「input.txt」内に存在する文字列「foo」を全て「bar」に置換して、出力ファイル「output.txt」に出力する。
出力ファイル「output.txt」が既に存在する場合は、上書き保存される。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | @echo off rem カレントディレクトリ移動(バッチ実行ディレクトリ) cd /d %~dp0 rem 入力ファイル set infilenm=input.txt rem 出力ファイル set outfilenm=output.txt rem 置換前文字列 set beforestr=foo rem 置換後文字列 set afterstr=bar rem 出力ファイル作成 type nul >%outfilenm% rem ファイル編集 setlocal enabledelayedexpansion for /f "delims=" %%A in (%infilenm%) do ( set line=%%A echo !line:%beforestr%=%afterstr%!>>%outfilenm% ) endlocal |
上書きされたら全部消えますけど