2011-09-07 72 views
0

我在用下面的代碼問題逃脫字符串:讀取在Windows批次循環

FOR /f "tokens=*" %%A in (%MYFILE_PATH%) do (
    [other stuff] 
    echo %%A>> "%MYFILE_PATH%.scratch" 
) 

該文件具有XML的它,當<和>符號讀取,腳本拋出錯誤。 如何避免%% A的內容安全地回顯到輸出文件? 我不想在它周圍加雙引號,因爲它會回顯引號。

感謝

+0

此代碼不會失敗,'<>'字符,如'回波%% A'是針對特殊字符安全(只有exlamation標記可能會造成問題)。我假設你的真實代碼調用函數或將%% A複製到其他變量中 – jeb

回答

1
FOR /f "tokens=*" %%A in (%MYFILE_PATH%) do (
    [other stuff] 
    (echo %%A)>>"%MYFILE_PATH%.scratch" 
) 

當追加%% A的內容到另一個文件,所有你基本上做的是複製文件。

EDIT

FOR /f "tokens=* delims=" %%A in (%MYFILE_PATH%) do (
    [other stuff] 
    (echo %%A)>>"%MYFILE_PATH%.scratch" 
) 
+0

謝謝!有了這個,沒有任何錯誤了。但是被複制的行中的空白正在被剝離。任何方式來防止呢? –

+0

它似乎也剝奪了一些其他角色。像 –

+0

它似乎也剝奪了一些其他字符。像下面這行: <!DOCTYPE beans PUBLIC' - // SPRING // DTD BEAN // EN''http://www.xxx.org/dtd/my-beans.dtd'>變成