0

根据我对另一个问题的更正回答,Windows XP 似乎没有从输出中删除<cr>'s 。for /f

如何测试<cr>输出中是否存在 's?

我目前拥有的是:

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

但无论我做什么:

 2) 分隔符= ¶

 3) 如果不是 "x%%a"==""

 4) 如果不是 "x%%a"==""

 5) 如果不是 "x%%a"==""

...我似乎无法让 if 将 var 中的 var 与上述任何组合相匹配。

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 回答