中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » For 循环中 ERRORLEVEL 值的问题!!!
作者:
标题: For 循环中 ERRORLEVEL 值的问题!!! 上一主题 | 下一主题
XinStar
初级用户





积分 30
发帖 11
注册 2007-6-30
状态 离线
『楼 主』:  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 ]

2008-3-14 16:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

for 语句中尽量不要用ERRORLEVEL
for /f  %%i in (Server.ini) Do Ping %%i -n 1 || echo %%i 不通



第一高手    第二高手

2008-3-14 17:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
XinStar
初级用户





积分 30
发帖 11
注册 2007-6-30
状态 离线
『第 3 楼』:  

非常感谢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 ]

2008-3-14 17:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: