找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 107842|回复: 17

[网络连接] [已解决]批处理下怎样能够同时ping 多个Ip地址

[复制链接]
发表于 2012-2-22 15:52:23 | 显示全部楼层 |阅读模式
本帖最后由 gmwd18 于 2012-2-24 09:22 编辑

如题,我要同时ping多个ip地址,我把这些ip保存到一个txt文件里面,现在怎样做才能让批处理同时ping 这多个ip地址呢?
同时将ping的返回信息保存到以ip地址为文件名的txt文件中。小弟不才,想不出什么方法来实现这个代码,还请各位大大指点一二~~,不胜感激啊!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2012-2-22 16:43:43 | 显示全部楼层
自己先顶一下~
发表于 2012-2-22 18:12:32 | 显示全部楼层
批处理只是读取信息进行相对应的操作。
  1. @echo off
  2. for /f %%i in (ip.txt) do ping %%i -n 1 >>%%i.txt
  3. pause
复制代码
发表于 2012-2-22 19:33:22 | 显示全部楼层
回复 3# guaiwu


    楼主说
  1. 同时ping 多个Ip地址
复制代码
啊。。
 楼主| 发表于 2012-2-23 09:16:09 | 显示全部楼层
回复 3# guaiwu


    这个只能ping一次,如果我要ping的次数多了就不行了,for循环是每个命令执行完毕后,才会进行下一个循环~~
 楼主| 发表于 2012-2-23 09:32:44 | 显示全部楼层
有哪位大大能给个示例,我看论坛上也有人讨论过,应该是要写2个bat,一个调用一个,这样才能实现同时,我在网上也看到说是伪多线程~~
自己再顶~
发表于 2012-2-23 10:46:09 | 显示全部楼层
  1. for %%i in (0.0.0.0 1.1.1.1 2.2.2.2) do start ping %%i>>%%i.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2012-2-23 11:10:36 | 显示全部楼层
最笨的办法
  1. @echo off
  2. start "" ping 192.168.1.101
  3. start "" ping 192.168.1.102
  4. start "" ping 192.168.1.103
  5. pause
复制代码

如果比较多,而常用,就修改成for,同楼上。
 楼主| 发表于 2012-2-24 09:17:56 | 显示全部楼层
嘿嘿,这个我搞定了,就是要编两个bat,主程序调用另一个,用start命令把变量附带上就行了,这样可以进行同时ping了,提高效率,不过Ip不能太多哦~
发表于 2012-2-24 13:02:33 | 显示全部楼层
回复 9# gmwd18


一个就行了吧
  1. @echo off
  2. for /l %%a in (101,1,103) do (
  3.     start ping 192.168.1.%%a
  4. )
复制代码
 楼主| 发表于 2012-2-27 11:36:20 | 显示全部楼层
回复 10# Perl

你这个是能同时Ping,但是不会把结果保存到文本文件里面,我加个重定向怎么出来都是空文件?
是不是没有执行重定向?start只开了多个ping程序,没有做重定向,是不是因为重定向的命令执行时没有命令行的解释器环境了?所以执行不了呢~
发表于 2012-2-27 13:37:34 | 显示全部楼层
回复 11# gmwd18


你自己加上重定向试试呢?
 楼主| 发表于 2012-2-27 14:24:14 | 显示全部楼层
回复 12# find

我加了重定向,出来的都是空文件。。。
发表于 2012-2-27 16:17:22 | 显示全部楼层
不能多个命令同时往一个文件中写入内容,可以写入多个文件最后合并。
其实解决这问题没有必要用批处理,用工具还是比较合适,并且效率高,如NirSoft的PingInfoView。
http://www.nirsoft.net/utils/multiple_ping_tool.html
发表于 2012-3-2 00:35:35 | 显示全部楼层
本帖最后由 liaobiaoxing 于 2012-3-2 00:39 编辑

我临时做了个,有两个文件,考虑压力,做了延时,运行1.cmd,缺点不少。254个IP地址10S左右。求优化。
1.cmd

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p ipad=请输入IP段(如果你是192.168.1.X网段,请输入192.168.1):
  3. for /l %%j in (0,1,25) do (
  4. for /l %%k in (1,1,9) do (
  5. start /min 2.cmd %ipad%.%%j%%k)
  6. ping -n 1 127.1>nul)
复制代码
2.cmd

  1. setlocal enabledelayedexpansion
  2. ping -n 1 %1|find "TTL="
  3. if !errorlevel!==0 echo %1>>alive.txt
  4. EXIT
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 13:13 , Processed in 0.011755 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表