2017-10-18 1 views
1

다른 배치 파일을 구문 분석하기 위해 배치를 사용하고 있습니다.배치 : 다중 문자 eol 대신

는 내가이 작업을 얻을 수있는 방법을 발견하지 않았습니다 본질적으로

eol=rem 

을 설정하여 의견을 건너 뛰려. 이것을 할 다른 방법이 있습니까?

+2

findstr을 사용하여 rem으로 시작하는 행을 찾지 마십시오. – Squashman

+1

일부 옵션; 'Token = 1 *'과'Do If Not "%% A"== "REM"과 비슷한'For' 루프를 사용하거나'\ '와 함께'FindStr/V'를 사용하십시오. 구문 분석 할 파일이나 구문 분석 방법 또는 의도를 볼 수없는 경우 구체적으로 설명하기가 어렵습니다. – Compo

+1

bxk21, 당신은 당신의 질문에 당신의 대답을 넣어서는 안됩니다.하지만 당신이 대답으로 그것을 제출하는 것을 멈추게하는 것은 아닙니다. 'REM'은 행의 첫 번째 문자가 유효 할 필요는 없으므로'\ '을 제안한 이유는 단어 REM 전체를 의미합니다. 또한 현재 예를 들어,로 시작하는 연결된 행. remote, remount, removable 또는 remainder는'rem'ark가 아니 었음에도 불구하고'rem'으로 사용되었습니다. – 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", 다음 한 조각 공백