単純な Windows バッチ ファイルを使用してテキスト検索を行い、多くのファイル内で置換したいと考えています。私の問題は次のとおりです。特殊な変数/文字を含む可能性のあるターゲットファイルから行を読み取るときに、変数の補間を回避する方法がわかりません。
たとえば、次の行 (!time!
とを含む^^!
) を含むターゲット ファイル test.txt の場合:
bbb aaaa bbb
!time!
bbb
^^!
そして、次のようなバッチ ファイルを使用します。
@echo off
setlocal EnableDelayedExpansion
set SEARCH=a
set REPLACE=x
set FILE=test.txt
for /f "delims=" %%A in (%FILE%) DO (
set line=%%A
set line=!line:%SEARCH%=%REPLACE%!
echo !line!
)
次の出力が得られます。
bbb xxxx bbb
18:51:27.00
bbb
^
しかし、私はこの出力が欲しいです(とを保存!time!
します^^!
):
bbb xxxx bbb
!time!
bbb
^^!
単純な Windows Batch スクリプトを使用しながら、補間を回避するためのトリックはありますか?