質問: バッチファイルで複数のテキストファイルの置換 バッチファイルで以下のような処理を行うことはできないでしょうか? フォルダ1以下の全てのテキストファイル内の abcde という文字列を あいうえお に置換して、上書き保存ではなく 元のファイル名+(編集済み).txt というファイル名で同じ場所に保存できないでしょうか。 バッチファイルで出来ない場合他の物でも構いません。 ――――――――――――――――――――――――――――― 処理前 フォルダ1 │ ├フォルダ2 │ └ファイル1.txt (内容:123abcde) │ ├フォルダ3 │ └フォルダ4 │ └ファイル2.txt (内容:abcde123abcde123) │ └フォルダ5 └ファイル3.txt (内容:456fghij) ――――――――――――――――――――――――――――― ↓ ――――――――――――――――――――――――――――― 処理後 フォルダ1 │ ├フォルダ2 │ └ファイル1.txt (内容:123abcde) │ └ファイル1(編集済).txt (内容:123あいうえお) │ ├フォルダ3 │ └フォルダ4 │ ├ファイル2.txt (内容:abcde123abcde123) │ └ファイル2(編集済).txt (内容:あいうえお123あいうえお123) │ └フォルダ5 └ファイル3.txt (内容:456fghij) ――――――――――――――――――――――――――――― こんな感じで出来ないでしょうか。 よろしくお願いします。
回答: こんなのでどうでしょう? @echo off setlocal for /r %%a in (*) do ( echo %%a for /f "usebackq tokens=1* delims=" %%b in ("%%a") do ( set oldtext=%%b call :sub abcd あいうえ "%%a" ) ) goto :eof :sub call set newtext=%%oldtext:%1=%2%% echo %newtext%>>"%~pn3(編集済)%~x3" goto :eof