我想使用一个简单的 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 脚本?