我正在編輯XML文件,大約前10行是註釋。而對於XML註釋的形式如何使用EnabledDelayedExapnsion輸出感嘆號?
<!-- COMMENT HERE -->
但是,當使用我的代碼它不會輸出!標記,它將xml中的註釋擰緊。我知道ENABLEDELAYEDEXPANSION正在這樣做,因爲它認爲感嘆號正在擴展一個變量。我怎麼能得到這個工作?
這是我下面
setlocal ENABLEDELAYEDEXPANSION
set line=0
FOR /f "usebackqdelims=" %%a in ("%filename2%") do (
set /a line = !line!+1
if !line!==39 (echo REPLACED TEXT39>>%tempfile%
)else if(!line!==45 (echo REPLACED TEXT45>>%tempfile%
)else (echo %%a>>%tempfile%
))
EDIT1代碼基本上什麼是應該做的是輸出的每一行,因爲它是,除非是行39或45。它的工作原理,除!評論中的標記不會被輸出,並且他們不再是評論。
EDIT2
set line=0
FOR /f "usebackqdelims=" %%a in ("%filename2%") do (
setlocal ENABLEDELAYEDEXPANSION
set /a !line! +=1
echo !line!
if !line!==39 (
echo REPLACED TEXT39>>%tempfile%
endlocal
)else if !line!==45 (
echo REPLACED TEXT45>>%tempfile%
endlocal
)else (
endlocal
setlocal DISABLEDELAYEDEXPANSION
echo %%a>>%tempfile%
endlocal
))
這是我一直在使用最新的代碼。它工作得最好,但現在問題是變量「行」沒有得到更新。我有一種感覺,那是因爲「終點」。唯一的問題是我需要「endlocal」,否則我得到一個錯誤
達到最大setlocal遞歸級別。
問題是,我需要在enableddelayedexpansion和disabledelayedexpansion之間切換,以便我的感嘆號正確顯示。但要做到這一點,我需要跟上我認爲正在搞亂我的線路變量的「本地」呼叫。有什麼想法嗎?
'其他if'不是命令,你需要空間ALA')其他(' – foxidrive
那好吧,我可以解決這部分後來... –
'如果(!行!== 45'是非法的,它應該是'if!line!== 45' – jeb