使用批量更改包含文件中符号的文本

问题描述:

我实际上正在尝试替换文本文件中的部分字符串。使用批量更改包含文件中符号的文本

如果我的旧文件中包含该文本

12345qwert91202030000000 

我想改变 '120203' 到 '120204'。这是我的代码:

setlocal enabledelayedexpansion 
if exist c:\myfile.txt (set b=c:\myfile.txt) ELSE GOTO LOGO 

for /f "tokens= 1" %%c in (%b%) do (set line=%%c) 

Set NEWdate=120204 

ECHO %line:~0,11%%NEWDate%%line:~17,7% > %b% 

这工作得很好。现在,如果我的旧文件包含以下文本

12345q&ert91202030000000 

注意符号“&”,因为它把它作为一个代码我的代码不能正常工作。

有什么建议吗?

+0

可能会添加更多相关标签? – Jared 2012-02-03 21:05:19

在这种情况下,您应该使用延迟扩展,因为百分比扩展将失败并显示特殊字符,但延迟扩展无法识别它们。

只需使用感叹号更改百分比,就可以在之前启用延迟扩展。

ECHO !line:~0,11!!NEWDate!!line:~17,7! > %b% 
+0

它的工作原理!谢谢 ! – 2012-02-03 22:03:07