标题: [文本处理] [求助]批处理 从文件中读取IP内容并逐一ping,将ping的结果存在另一个文件中。 [打印本页]
作者: jianguom 时间: 2014-3-17 21:48 标题: [求助]批处理 从文件中读取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]
作者: jianguom 时间: 2014-3-18 09:52
在线等。。。
作者: sbjugt 时间: 2014-3-18 15:48
本帖最后由 sbjugt 于 2014-3-18 15:51 编辑
- echo off
- set/a m=1
- :begin
- set/a n=%m%-1
- if "%n%"=="0" (set "skip=") else (set "skip=skip=%n%")
- for /f "%skip% tokens=* delims=" %%i in (ip.txt) do (
- set a=%%i&&goto:a)
- :a
- echo 当前检测IP为:%a%
- ping %a%>123.txt
- for /f "tokens=4 delims=^=" %%i in ('find /n "平均" 123.txt') do (set b=%%i)
- for /f "tokens=6 delims=^= " %%i in ('find /n "丢失" 123.txt') do (set c=%%i)
- if "%c%" == "4" echo %a% 网络断100^%% timeout>>pinRecord.txt
- if "%c%" == "3" echo %a% 网络通25^%% %b%>>pinRecord.txt
- if "%c%" == "2" echo %a% 网络通50^%% %b%>>pinRecord.txt
- if "%c%" == "1" echo %a% 网络通75^%% %b%>>pinRecord.txt
- if "%c%" == "0" echo %a% 网络通100^%% %b%>>pinRecord.txt
- set /a m=%m%+1
- goto begin
复制代码
我在WIN7下测试的 你可以更改“平均”和“丢失”为英文
作者: katolecyan 时间: 2014-6-8 13:09
回复 3# sbjugt
楼上兄弟,我WIN7 64位旗舰版运行之后好像就不动了,请问是什么原因啊?
作者: DAIC 时间: 2014-6-8 15:01
回复 4# katolecyan
把echo off删掉再执行,看看是哪里出了问题。
作者: katolecyan 时间: 2014-6-9 18:54
回复 5# DAIC
谢谢啦!终于弄好了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |