使用批量更改包含文件中符号的文本
问题描述:
我实际上正在尝试替换文本文件中的部分字符串。使用批量更改包含文件中符号的文本
如果我的旧文件中包含该文本
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
注意符号“&”,因为它把它作为一个代码我的代码不能正常工作。
有什么建议吗?
答
在这种情况下,您应该使用延迟扩展,因为百分比扩展将失败并显示特殊字符,但延迟扩展无法识别它们。
只需使用感叹号更改百分比,就可以在之前启用延迟扩展。
ECHO !line:~0,11!!NEWDate!!line:~17,7! > %b%
+0
它的工作原理!谢谢 ! – 2012-02-03 22:03:07
可能会添加更多相关标签? – Jared 2012-02-03 21:05:19