ping 的通和不通,BAT中errorlevel都为0

for/f%%iin(ip.txt)doping%%i-n1&if%errorlevel%EQU1(ECHO%%iPASS>>ok.txt)else(ECHO%%iFAI... for /f %%i in (ip.txt) do ping %%i -n 1 & if %errorlevel% EQU 1 (ECHO %%i PASS

>>ok.txt) else (ECHO %%i FAIL >>ok.txt)

脚本如上: ip.txt 有的IP拼得通,有的拼不通

问题:为什麼拼通和拼不通 errorlevel都是ok呢,,正常情况下:拼通才为0.拼不通为1呀

请高手指教,如何改善
展开
 我来答
nefu_20061617
推荐于2017-10-08 · TA获得超过2342个赞
知道大有可为答主
回答量:1064
采纳率:72%
帮助的人:1472万
展开全部

你的代码中,if语句%errorlevel%的值是执行for语句之前的errorlevel,所以一直是0
一般有以下两种解决方法,
用 if errorlevel 语句:

for /f %%i in (ip.txt) do ping %%i -n 1 & if errorlevel 1 (ECHO %%i FAIL >>ok.txt) else (ECHO %%i PASS >>ok.txt)

或者,启用延迟变量扩展:

setlocal enabledelayedexpansion
for /f %%i in (ip.txt) do ping %%i -n 1 & if !errorlevel! EQU 1 (ECHO %%i FAIL >>ok.txt) else (ECHO %%i PASS >>ok.txt)
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式