bat内で文字列を置換する場合は以下の文法を使います。
%置換したい文字列をセットした変数名:置換対象文字列=置換後文字列%
使用例① 固定文字列を使用
BAT (Batchfile)
set text=ABCABC
echo %TEXT:B=X%
結果:AXCAXC
使用例② 文字列変数を使用
置換対象文字列、置換後文字列に変数を使う場合は、
call echo もしくは 遅延展開を使用する必要があります。
BAT (Batchfile)
set text=ABCABC
set Search=B
set Replace=X
call echo %%text:%search%=%Replace%%%
BAT (Batchfile)
set text=ABCABC
set Search=B
set Replace=X
setlocal enabledelayedexpansion
echo !text:%Search%=%Replace%!
結果:AXCAXC
また、以下のように変数に変数を指定することも可能です。
この場合も上記どちらかの記述で動作します。
set AA=ABCABC
set BB=B
set CC=X
set text=%AA%
set Search=%BB%
set Replace=%CC%
備考(変数の文字列をそのまま文字列として使う)
例えばWindows標準の変数環境「%userprofile%=C:\Users\ユーザー名」を、
%userprofile%に変換する場合は以下のように記述します。
変数でなく文字列として扱いたい場合は”%%変数名%%”と記載し、遅延展開を使用します。
BAT (Batchfile)
setlocal enabledelayedexpansion
set text=%*
set Search=%userprofile%
set Replace=%%userprofile%%
echo !text:%Search%=%Replace%!