中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 22:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » For 循环中 ERRORLEVEL 值的问题!!!
楼 主 For 循环中 ERRORLEVEL 值的问题!!! 发表于 2008-03-14 16:28 ·  中国 湖南 张家界 电信
初级用户
积分 30
发帖 11
注册 2007-06-30 16:52
UID 92780
性别 男
状态 离线
批处理内容如下:
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 ]
2 发表于 2008-03-14 17:30 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
UID 54766
性别 男
来自 上海
状态 离线
for 语句中尽量不要用ERRORLEVEL
for /f %%i in (Server.ini) Do Ping %%i -n 1 || echo %%i 不通
第一高手 第二高手

3 发表于 2008-03-14 17:54 ·  中国 湖南 张家界 电信
初级用户
积分 30
发帖 11
注册 2007-06-30 16:52
UID 92780
性别 男
状态 离线
非常感谢fastslz兄,给了我思路!!!

我把批处理修改如下,终于达到了我想到的效果:
@echo off
Del Online.txt
echo 当前在线的服务器有: >Online.txt
for /f "skip=1 eol=









Last edited by XinStar on 2008-3-14 at 05:55 PM ]
论坛跳转: