Board logo

标题: [网络连接] 如何通过批处理找出网络中不在线的设备? [打印本页]

作者: yinjihanhua    时间: 2011-1-3 18:54     标题: 如何通过批处理找出网络中不在线的设备?

初学批处理,请大家多多指教!
在一个网络中,有100多台设备,ip段为:192.168.1.100~192.168.1.199,想通过批处理找出那些不在线的设备,我自己做了设想,如下:

  1. @echo off
  2. if exist D:p.txt del D:p.txt
  3. ping 192.168.1.100 >D:p.txt
  4. type D:p.txt | find "Request timed out" && echo "100不在线" >>D:a.txt
  5. if exist D:p.txt del D:p.txt
  6. ping 192.168.1.101 >D:p.txt
  7. type D:p.txt | find "Request timed out" && echo "101不在线" >>D:a.txt
  8. ………………
复制代码
可是照这样的思路做下去的话,就没有批处理的味道了,请各位大侠指教!

[ 本帖最后由 yinjihanhua 于 2011-1-4 14:13 编辑 ]
作者: hanyeguxing    时间: 2011-1-3 19:49

  1. @echo off
  2. for /l %%a in (100,1,199) do ping 192.168.1.%%a -n 1 -w 100 >nul 2>nul||echo %%a不在线
  3. pause
复制代码

作者: yhcbird    时间: 2011-1-3 21:37

楼主和我一样。。先看了论坛的for循环教学就会知道怎么做了。
作者: manhua    时间: 2011-1-4 10:05

原帖由 hanyeguxing 于 2011-1-3 19:49 发表
@echo off
for /l %%a in (100,1,199) do ping 192.168.1.%%a -n 1 -w 100 >nul 2>nul||echo %%a不在线
pause


2楼的代码是不是该在PING前面加个@符号,否则执行会报两个ECHO结果。
作者: hanyeguxing    时间: 2011-1-4 11:17     标题: 回复 4楼 的帖子

如果说回显,已经被 echo off 关闭了。
如果说 ping 的返回,已经被 >nul 2>nul 屏蔽了。
作者: yhcbird    时间: 2011-1-4 11:29

是啊 。2楼代码没错的。。。。。。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2