技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

Windowsバッチの文字列置換(置換文字列を変数で定義)

備忘録です。
遅延環境変数を使ったり、環境変数のネストを使ったりして色々複雑なので。
 
【バッチサンプル】
・test.bat
rem 空ファイル作成
type nul> output.txt

rem 置換前文字列・置換後文字列を変数で定義
set before=hoge
set after=piyo

rem before・afterはfor文実行前に展開する(%で変数定義)
rem inputファイルの行(line)はfor文実行中に展開する(!で変数定義)
setlocal enabledelayedexpansion
for /f "delims=" %%I in (input.txt) do (
    set line=%%I
    echo !!line:%before%=%after%!!>> output.txt
)
endlocal

 

【入力ファイル例】
・input.txt
hogefuga
hoge

 

【出力ファイル例】
・output.txt
piyofuga
piyo