标题: For 循环中 ERRORLEVEL 值的问题!!!
[打印本页]
作者: XinStar
时间: 2008-3-14 16:28
标题: For 循环中 ERRORLEVEL 值的问题!!!
批处理内容如下:
for /f %%i in (Server.ini) Do Ping %%i -n 1|Find /I "Reply From" >Nul&If "%ERRORLEVEL%"=="1"
Server.ini文件内容如下:
ZjjHs1.3322.Org
ZjjHs2.3322.Org
最后的执行结果怎么会是这样呢???ERRORLEVEL为什么总是0!!!
for /F %i in (Server.ini) Do Ping %i -n 1 | Find /I "Reply from" 1>Nul
If "0" == "1"
Ping ZjjHs1.3322.Org -n 1 | Find /I "Reply from" 1>Nul & If "0" == "1"
Ping ZjjHs2.3322.Org -n 1 | Find /I "Reply from" 1>Nul & If "0" == "1"
...
为什么ping不通的时候,,ERRORLEVEL的值还是0呢???
不加在FOR语句中就不会出现这种情况!!!
请高手指正,谢谢!!!
[
Last edited by XinStar on 2008-3-14 at 04:43 PM ]
作者: fastslz
时间: 2008-3-14 17:30
for 语句中尽量不要用ERRORLEVEL
for /f %%i in (Server.ini) Do Ping %%i -n 1 || echo %%i 不通
作者: XinStar
时间: 2008-3-14 17:54
非常感谢fastslz兄,给了我思路!!!
我把批处理修改如下,终于达到了我想到的效果:
@echo off
Del Online.txt
echo 当前在线的服务器有: >Online.txt
for /f "skip=1 eol=[" %%a in (Server.ini) Do Ping %%a -n 1 >Nul && Echo %%a >>Online.txt
for /f %%b in (Online.txt) do echo %%b
运行的结果如下:
当前在线的服务器
ZjjHs1.3322.Org
ZjjHs2.3322.Org
另ERRORLEVEL为什么在For里面运行的时候就达不到效果呢???
[
Last edited by XinStar on 2008-3-14 at 05:55 PM ]