批处理 ERRORLEVEL在for循环体中的求教?批处理文件的代码如下:......我的目的是通过判断ping...

目的是通过判断ping命令的返回ERRORLEVEL值来进行下面的if处理,但是,加在for循环内部后,ERRORLEVE的值始终为0,无论ping是否失败都一样,求教,... 目的是通过判断ping命令的返回ERRORLEVEL值来进行下面的if处理,但是,加在for循环内部后,ERRORLEVE的值始终为0,无论ping是否失败都一样,求教,如何修改代码:
for /l %%a in (2,1,254) do (
ping 192.168.0.%%a -n 2
if %ERRORLEVEL% == 0 (
echo IP:192.168.0.%%a已经成功联网 >> d:netreport.txt
start d:netreport.txt
exit
)
)
最终的目的,就是判断192.168.0.2到192.168.0.254中,哪一个IP联入了网络;找出后,写入到d:netreport文件,然后退出。(注:只可能有一个IP联入了网络)
展开
 我来答
忆林子
2012-05-20 · TA获得超过2034个赞
知道大有可为答主
回答量:4079
采纳率:0%
帮助的人:2743万
展开全部
要用到setlocal并且在循环中引用变量要用!!而不是%%
也就是把你的代码修改成以下
for /l %%a in (2,1,254) do (
ping 192.168.0.%%a -n 2
SETLOCAL ENABLEDELAYEDEXPANSION
if !ERRORLEVEL! == 0 (
echo IP:192.168.0.%%a已经成功联网 >> d:netreport.txt
start d:netreport.txt
exit
)
ENDLOCAL
)
追问
这样,我试了一下,ERRORLEVEL变量的值依然为0,帮忙再修改一下,多谢了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式