2017-10-18 17 views
1

私は別のバッチファイルを解析するためにバッチを使用しています。バッチ:複数文字の代替方法

私は基本的に私はこの作業を取得する方法を発見していない

eol=rem 

を設定することにより、コメントをスキップしたいです。これを行うには他の方法がありますか?

+2

findstrを使用して、remで始まる行が見つからないようにします。 – Squashman

+1

いくつかのオプション。 'Tokens = 1 *'と 'Do For Not" %% A "==" REM "と同様のものを使って' For'ループを使うか、 '\ 'と 'FindStr/V'を使用してください。解析するファイル、構文解析の方法、または意図を見ることができない場合は、具体的にするのは難しいです。 – Compo

+1

bxk21の場合、あなたの質問にあなたの答えを入れるべきではありませんが、答えとしてそれを提出するのを止めることはありません。 'REM'は有効な行の最初の文字である必要はないので、' \ 'を提案した理由は、単語REM全体と一致することを意味します。また、現在、たとえば、で始まる任意の連結された行。リモート、再マウント、リムーバブル、または残りの部分は '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"、そしてワンピース空白。