2012-02-03 61 views
1

我實際上正在嘗試替換文本文件中的部分字符串。使用批量更改包含文件中符號的文本

如果我的舊文件中包含該文本

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

回答

2

在這種情況下,您應該使用延遲擴展,因爲百分比擴展將失敗並顯示特殊字符,但延遲擴展無法識別它們。

只需使用感嘆號更改百分比,就可以在之前啓用延遲擴展。

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

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

相關問題