标题: [网络连接] [已解决]批处理下怎样能够同时ping 多个Ip地址 [打印本页]
作者: gmwd18 时间: 2012-2-22 15:52 标题: [已解决]批处理下怎样能够同时ping 多个Ip地址
本帖最后由 gmwd18 于 2012-2-24 09:22 编辑
如题,我要同时ping多个ip地址,我把这些ip保存到一个txt文件里面,现在怎样做才能让批处理同时ping 这多个ip地址呢?
同时将ping的返回信息保存到以ip地址为文件名的txt文件中。小弟不才,想不出什么方法来实现这个代码,还请各位大大指点一二~~,不胜感激啊!
作者: gmwd18 时间: 2012-2-22 16:43
自己先顶一下~
作者: guaiwu 时间: 2012-2-22 18:12
批处理只是读取信息进行相对应的操作。- @echo off
- for /f %%i in (ip.txt) do ping %%i -n 1 >>%%i.txt
- pause
复制代码
作者: garyng 时间: 2012-2-22 19:33
回复 3# guaiwu
楼主说复制代码
啊。。
作者: gmwd18 时间: 2012-2-23 09:16
回复 3# guaiwu
这个只能ping一次,如果我要ping的次数多了就不行了,for循环是每个命令执行完毕后,才会进行下一个循环~~
作者: gmwd18 时间: 2012-2-23 09:32
有哪位大大能给个示例,我看论坛上也有人讨论过,应该是要写2个bat,一个调用一个,这样才能实现同时,我在网上也看到说是伪多线程~~
自己再顶~
作者: tms2010 时间: 2012-2-23 10:46
- for %%i in (0.0.0.0 1.1.1.1 2.2.2.2) do start ping %%i>>%%i.txt
复制代码
作者: cjiabing 时间: 2012-2-23 11:10
最笨的办法- @echo off
- start "" ping 192.168.1.101
- start "" ping 192.168.1.102
- start "" ping 192.168.1.103
- pause
复制代码
如果比较多,而常用,就修改成for,同楼上。
作者: gmwd18 时间: 2012-2-24 09:17
嘿嘿,这个我搞定了,就是要编两个bat,主程序调用另一个,用start命令把变量附带上就行了,这样可以进行同时ping了,提高效率,不过Ip不能太多哦~
作者: Perl 时间: 2012-2-24 13:02
回复 9# gmwd18
一个就行了吧- @echo off
- for /l %%a in (101,1,103) do (
- start ping 192.168.1.%%a
- )
复制代码
作者: gmwd18 时间: 2012-2-27 11:36
回复 10# Perl
你这个是能同时Ping,但是不会把结果保存到文本文件里面,我加个重定向怎么出来都是空文件?
是不是没有执行重定向?start只开了多个ping程序,没有做重定向,是不是因为重定向的命令执行时没有命令行的解释器环境了?所以执行不了呢~
作者: find 时间: 2012-2-27 13:37
回复 11# gmwd18
你自己加上重定向试试呢?
作者: gmwd18 时间: 2012-2-27 14:24
回复 12# find
我加了重定向,出来的都是空文件。。。
作者: qiwei201 时间: 2012-2-27 16:17
不能多个命令同时往一个文件中写入内容,可以写入多个文件最后合并。
其实解决这问题没有必要用批处理,用工具还是比较合适,并且效率高,如NirSoft的PingInfoView。
http://www.nirsoft.net/utils/multiple_ping_tool.html
作者: liaobiaoxing 时间: 2012-3-2 00:35
本帖最后由 liaobiaoxing 于 2012-3-2 00:39 编辑
我临时做了个,有两个文件,考虑压力,做了延时,运行1.cmd,缺点不少。254个IP地址10S左右。求优化。
1.cmd- @echo off&setlocal enabledelayedexpansion
- set /p ipad=请输入IP段(如果你是192.168.1.X网段,请输入192.168.1):
- for /l %%j in (0,1,25) do (
- for /l %%k in (1,1,9) do (
- start /min 2.cmd %ipad%.%%j%%k)
- ping -n 1 127.1>nul)
复制代码
2.cmd- setlocal enabledelayedexpansion
- ping -n 1 %1|find "TTL="
- if !errorlevel!==0 echo %1>>alive.txt
- EXIT
复制代码
作者: gmwd18 时间: 2012-3-2 10:31
回复 14# qiwei201
呵呵,这个软件确实挺强大的,本人现在就在用,这个批处理是一时想起,所以做了一个尝试~~
作者: weihua_bat 时间: 2017-2-24 03:53
回复 3# guaiwu
第个IP生成一个txt,我觉得不好。
作者: ygqiang 时间: 2017-2-24 18:40
回复 9# gmwd18
你好,具体到1楼的解决方法,代码能否发出来。谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |