我正在使用repl.bat来查找和替换文件。这是我的代码
for /f "tokens=1,2" %%s in (FindNReplace.txt) do (
Type C:\user\linefeed\%%a | C:\comp\bat\repl.bat "\%%s" "%%t" X > C:\user\out\%%a
)
现在在我的FindNReplace.txt中,我有样本内容:
AAAAA\d{3} AAAAA
基本上所有包含AAAAA + 3字节的字符串都将被AAAAA取代。现在,如果我想为我的字符串包含3个字节的空格用作替换? “AAAAA + 3个空格”我可以在FindNReplace.txt的第二列中包含特殊字符吗?
答案 0 :(得分:1)
如果要在.txt文件的第二列中包含空格,则需要向for
命令指示不应将这些空格视为分隔符。只需指出要检索的标记是该行中的第一个元素,第二个标记将是该行中的所有剩余数据。
for /f "tokens=1,*" %%s in (FindNReplace.txt) do (
Type C:\user\linefeed\%%a | C:\comp\bat\repl.bat "\%%s" "%%t" X > C:\user\out\%%a
)
当然,在第二列中包含值之后的三个空格。
已修改以适应评论
copy "C:\user\linefeed\%%a" "C:\user\linefeed\%%a.in.tmp"
for /f "tokens=1,*" %%s in (FindNReplace.txt) do (
Type "C:\user\linefeed\%%a.in.tmp" | C:\comp\bat\repl.bat "\%%s" "%%t" X > "C:\user\linefeed\%%a.out.tmp"
move /y "C:\user\linefeed\%%a.out.tmp" "C:\user\linefeed\%%a.in.tmp"
)
move "C:\user\linefeed\%%a.in.tmp" "C:\user\out\%%a"