2017-10-18 130 views
1

我正在使用批解析另一個批處理文件。批處理:替代多字符EOL

我想基本上設置

eol=rem 

跳過意見,我還沒有找到一種方式來獲得這個工作。有沒有其他方法可以做到這一點?

+2

使用findstr找不到以rem開頭的任何行。 – Squashman

+1

一些選項;使用'Tok' = 1 *'的'For'循環以及類似於'Do If Not'%% A「==」REM「的類似方法,或者在可能使用'\ '時使用'FindStr/V'。當我們看不到要解析的文件,解析的方法或意圖時,很難具體。 – Compo

+1

bxk21,你不應該把你的答案放到你的問題中,但是沒有任何東西阻止你提交它作爲答案,並且如果它是你喜歡的答案。請注意,'REM'不一定是第一個有效的字符,因此我建議'\ ',這意味着匹配整個單詞REM。例如,目前還有任何以連字符開頭的連接線;遠程,重新裝入,可移動或剩餘部分將被'rem'移除,儘管事實上它不是'rem'ark。 – Compo

回答

2

我發現這工作:

for /F "tokens=*" %%A in ('findstr /b /v /i /r /C:"[ ]*rem[ ]" %BAT_FILE%') do (
    echo Uncommented Line: %%A 
) 

https://ss64.com/nt/findstr.html

/b searches from the beginning of the string 
/v searches for lines not matching the string 
/i allows for "REM" as well as "rem" 
/r /C: turns on regex: 
[ ] is a block containing a space and a tab. 

因此,對於空白的任何數量的正則表達式搜索,字符串 「REM」,然後一片空白。