中易网

批处理高手进,关于ERRORLEVEL!!!

答案:2  悬赏:0  
解决时间 2021-03-05 20:38
我想用批处理做一设定IP的东西,就是网络里可以上网的IP集合里有没有被用,如果没有,就把本机IP设定为这个IP。用的是下面的代码,ping 确定使用和确定不使用的IP时发现ERRORLEVEL的值一直是0,可能这里返回的不是ping命令的ERRORLEVL,是怎么回事,要怎么样才能返回ping的ERRORLEVEL?

@echo off
for /f %%i in (netableip.txt) do (ping %%i -n 1 -w 100
echo %ERRORLEVEL%
if %ERRORLEVEL%==1 (echo setip %%i
echo setdns))
pause

可以根据ping返回值运行的批处理
@echo off
set /a var=0
set /a cout1=0
set /a cout2=0
if exist 离线主机列表.txt del 离线主机列表.txt
if exist 在线主机列表.txt del 在线主机列表.txt
:start
set /a var+=1
ping 192.168.1.%var% -n 1 -w 100
if %ERRORLEVEL%==1 (echo 192.168.1.%var%>>离线主机列表.txt
set /a cout1+=1
echo %cout1%)
if %ERRORLEVEL%==0 (echo 192.168.1.%var%>>在线主机列表.txt
set /a cout2+=1
echo %cout2%)
if %var% leq 255 GOTO start
echo 在线主机数量为:%cout2%
echo 离线主机数量为:%cout1%
pause
最佳答案
不需ERRORLEVEL,用管道命令即可。
@echo off
for /f %%i in (netableip.txt) do ping %%i -n 1 -w 100&&echo %%i used! ||echo setip %%i
全部回答
当使用if errorlevel 值 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand 操作; 当使用if %errorlevel%==值 cmmand 句式时,它含义是:如果返回的错误码值等于值 的时候,将执行cmmand操作。 第二段批处理当中,数字左右不要加%,%a%指的都是变量, %1%,批处理认为是一种错误的表达式,所以一闪退出
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的酷狗音乐找不到本地歌曲文件怎么办
山西大学商务学院思政部在哪里啊,我有事要去
文件夹中图片太多打不开
武则天命令百花斗雪竟放连夜开的是四句诗人
中国人民银行甘肃省招聘守库员,考什么?怎么
如何取一个有古代味道的QQ名?
名流台球会所在什么地方啊,我要过去处理事情
proe5.0怎么用标准库画齿轮
三国志12如何废除献帝?
海南高考转换分850原始分大概要多少
苏塘邮政支局在哪里啊,我有事要去这个地方
诸城市繁华中学诸城市东坡街25号在那考场有监
刺客信条:兄弟会v1.01八项修改器怎么用
外地车,车险,在北京验车行吗
星梦缘KTV这个地址在什么地方,我要处理点
推荐资讯
左中右微公交西溪路营业厅地址有知道的么?有
闪长岩中的磷灰石矿属于什么类型的矿
小李土特产超市地址在什么地方,想过去办事
智能电表上面号代表什么意思?
如果将小苏打和碘酒混合会发生什么现象,会产
"如何区分网站的功能与性能差别?"
谁知道这是什么鸟崽?
从黄山火车站做出租车到黄山北站需要多少钱
景观照明设计规范怎么规定的
全大部岭地址在什么地方,想过去办事
我在收费鱼塘钓草鱼和乌青,鱼塘水深1米7左右
文山市开化街道兴隆社区居民委员会地址有知道
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?