批处理:替代多字符EOL

问题描述:

我正在使用批解析另一个批处理文件。批处理:替代多字符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

我发现这工作:

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”,然后一片空白。