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

[文本处理] [求助]批处理 从文件中读取IP内容并逐一ping,将ping的结果存在另一个文件中。

通过批处理完成对全网IP状态的判断,并反馈结果到另一个文件中,要求如下:

1、比如要PING的IP文件IP.txt文件,ip格式如下:
192.169.5.13
127.0.0.1
192.169.1.108
192.169.1.112
2、通过Ping命令,对IP.txt中的所有IP进行逐一ping,截取所需要的关键数据“丢包率、平均时廷”后生成到另一个pinRecord.txt,要求格式如下:

IP地址 网络状态 Lost Average
192.169.5.13 网络通 0% 2ms
127.0.0.1 网络断 100% time out
192.169.1.108 网络通 0% 2ms
192.169.1.112 网络通 0% 2ms
谢谢!
1、如果有reply表示网络通,另外再提取Lost和Average的值,如下图
[attach]7124[/attach]
2、如果有Request time out表示网络断,另外再提取Lost和Average(网络断就设“超时”)如下图:
[attach]7125[/attach]

在线等。。。

TOP

本帖最后由 sbjugt 于 2014-3-18 15:51 编辑
  1. echo off
  2. set/a  m=1
  3. :begin
  4. set/a n=%m%-1
  5. if "%n%"=="0" (set "skip=") else (set "skip=skip=%n%")
  6. for /f "%skip% tokens=* delims="  %%i in (ip.txt) do (
  7. set a=%%i&&goto:a)
  8. :a
  9. echo 当前检测IP为:%a%
  10. ping %a%>123.txt
  11. for /f "tokens=4 delims=^=" %%i in ('find /n "平均" 123.txt') do (set b=%%i)
  12. for /f "tokens=6 delims=^= " %%i in ('find /n "丢失" 123.txt') do (set c=%%i)
  13. if "%c%" == "4" echo %a% 网络断100^%% timeout>>pinRecord.txt
  14. if "%c%" == "3" echo %a% 网络通25^%% %b%>>pinRecord.txt
  15. if "%c%" == "2" echo %a% 网络通50^%% %b%>>pinRecord.txt
  16. if "%c%" == "1" echo %a% 网络通75^%% %b%>>pinRecord.txt
  17. if "%c%" == "0" echo %a% 网络通100^%% %b%>>pinRecord.txt
  18. set /a m=%m%+1
  19. goto begin
复制代码
我在WIN7下测试的   你可以更改“平均”和“丢失”为英文

TOP

回复 3# sbjugt


    楼上兄弟,我WIN7 64位旗舰版运行之后好像就不动了,请问是什么原因啊?

TOP

回复 4# katolecyan


    把echo off删掉再执行,看看是哪里出了问题。

TOP

回复 5# DAIC


    谢谢啦!终于弄好了!

TOP

返回列表