1

単純な 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 スクリプトを使用しながら、補間を回避するためのトリックはありますか?

4

1 に答える 1