If statement 检查<;cr>;Windows命令提示符中的in if语句

If statement 检查<;cr>;Windows命令提示符中的in if语句,if-statement,for-loop,windows-xp,cmd,carriage-return,If Statement,For Loop,Windows Xp,Cmd,Carriage Return,据了解,Windows XP似乎没有将从for/f输出中剥离出来 如何测试输出中是否存在 我目前拥有的是: 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”==“”

据了解,Windows XP似乎没有将
for/f
输出中剥离出来

如何测试输出中是否存在

我目前拥有的是:

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与上述任何组合相匹配的if。

使用
FOR
语句,我所知道的确实没有办法一致地检查空行

FOR
语句实际上跳过了空行,这就是回车的含义,只是一个空行

如果它能够检查,您只需要检查一个空字符串。就像
如果“%%x”==”回显是

但请在命令行中尝试以下操作:

for /f "tokens=*" %x in ('for /?') do @echo %x
然后将其与以下各项的输出进行比较:

for /?
您将看到(通常*)
FOR
不包括空行

*我曾见过这种情况偶尔发生(通常是在疼痛的时候),但我从未能够始终如一地重现这种情况


编辑后的答案

在Win XP上,FOR语句似乎没有跳过空行。有关详细信息,请参见问题中的“”。