0

別の質問に対する私の正しい回答によると、Windows XP は を出力<cr>から削除しないようです。for /f

出力に が含まれているかどうかをテストするにはどうすればよい<cr>ですか?

私が現在持っているものは次のとおりです。

for /f "tokens=1,2,3* %%a in ('ping -n 1 example.com') do (
   if not "x%%a"=="¶" ( echo %%a ) else ( echo.>null )
)

しかし、私が何をしても:

 2) delims= ¶

 3) "x%%a"=="" でない場合

 4) "x%%a"==" " でない場合

 5) "x%%a"=="" でない場合

... 上記の任意の組み合わせで var に一致する if を取得できないようです。

4

1 に答える 1

0

ステートメントを使用するFORと、空の行を一貫してチェックする方法は実際にはありません。

FORステートメントは実際には空白行をスキップします。これはキャリッジリターンのみであり、空白行だけです。

チェックできる場合は、空の文字列をチェックする必要があります。好きif "%%x"=="" echo Yes!

ただし、コマンドラインでこれを試してください。

for /f "tokens=*" %x in ('for /?') do @echo %x

次に、それを次の出力と比較します。

for /?

FORそして、(通常*)空の行が含まれていないことがわかります。

*私それが時々起こるのを見ました(通常それが苦痛であるとき)、しかし私はそれを一貫して再現することができませんでした。

編集された回答

于 2013-02-02T18:18:20.450 に答える