我实际上是在尝试替换文本文件中的部分字符串。
如果我的旧文件包含此文本
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 :(得分:2)
在这种情况下,您应该使用延迟扩展,因为扩展百分比会因特殊字符而失败,但延迟扩展无法识别它们。
只需用感叹号更改百分比,就可以在之前启用延迟扩展。
ECHO !line:~0,11!!NEWDate!!line:~17,7! > %b%