[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何每5分钟批量ping多个ip 并将ave值放入txt文件?

做网络时延的实验。想使用ping采集数据。
实现功能:
1、 一天内每5分钟批量ping多个ip
2、从txt中读入ip地址
3、 将每次ping的ave值放入txt文件
格式:
      ip    date time  ave

修改下 隐藏运行
  1. if "%~1"=="" mshta vbscript:createobject("wscript.shell").run("%~s0 0",0)(window.close)&exit
  2. @echo off&setlocal enabledelayedexpansion
  3. if not exist "ip.txt" msg %username% /time:5 "错误!!请确认IP地址已存入当前目录下的ip.txt文本!!!"&exit
  4. if not exist "ping_result.txt" >ping_result.txt echo.IP Date Time AVE
  5. :loop
  6. for /f "delims=" %%i in (ip.txt) do (
  7.   set "Ave=NULL"
  8.   for /f "skip=11 tokens=4 delims==" %%j in ('ping -w 500 -n 4 %%i') do set "Ave=%%j"
  9.   >>ping_result.txt echo;%%i !date:~,10! !time:~,8! !Ave: =!
  10. )
  11. ping/n 300 127.1>nul
  12. goto loop
复制代码
测试环境 win xp3

TOP

本帖最后由 再世情緣 于 2012-12-22 11:35 编辑

刚刚写了一个,测试还行。。。
注意把批处理命名为pp.bat,为后面的vbs定时脚本用。。。
  1. @echo off &&color 0a
  2. setlocal enabledelayedexpansion
  3. pushd "%cd%\"
  4. :main
  5. if not exist "ip.txt" msg %username% /time:5 "错误!!请确认IP地址已存入当前目录下的ip.txt文本!!!" &&call exit
  6. if not exist "ping_result.txt" echo.IP Date Time AVE >ping_result.txt
  7. for /f "delims=" %%a in (ip.txt) do (
  8.   set "ip=%%a"
  9.   echo.正在Ping !ip! , 请稍后 ....
  10.   ping -w 500 -n 4 !ip! | findstr /i "Average" >tmp.txt ||set "Ave=NULL"
  11.   for /f "tokens=3 delims=," %%i in (tmp.txt) do (
  12.     set "Average=%%i"
  13.     for /f "tokens= 3 delims= " %%m in ("!Average!") do (
  14.     set "Ave=%%m"
  15.     )
  16.   )
  17.   echo.!ip! !date:~,10! !time:~,8! !Ave! >>ping_result.txt
  18. )
  19. del /q /f tmp.txt
  20. call exit
复制代码
每次Ping 会生成一个临时文件tmp.txt,你要的结果放在脚本所在目录,文档名称为ping_result.txt,如果Ping 不通,Ave值为Null ,请把ip地址列表放在脚本所在目录,格式为
  1. 192.168.1.1
  2. 192.168.1.2
  3. ......
复制代码
至于你要的每5分钟自动ping。。。这个。。。批处理窗口一直开着。。。有时候系统会自动结束cmd(貌似是,反正我的机器经常自动结束cmd.exe,尤其是后台运行的时候。。。),建议用vbs脚本写,放在同一目录,直接运行vbs就行,我vbs刚刚入门。。。。再次献丑了。。。
  1. for i=0 to 65536
  2.   WSCript.CreateObject("WSCript.shell").run "pp.bat", 1
  3.   WSCript.sleep "300000"
  4. next
复制代码
这个。。。刚才测试360竟然说这个vbs是木马。。。。兄弟,天地良心啊,至于你用不用。。。。您看着办吧。。。对了,vbs运行的时候是后台的。。。如果需要关闭,打开一个新的cmd窗口
  1. taskkill /f /im "wscript.exe"
复制代码

TOP

返回列表