标题: [文本处理] 在win7下如何把ping结果的某个数值输出到另外一个文本里? [打印本页]
作者: sgzg737 时间: 2012-3-7 13:10 标题: 在win7下如何把ping结果的某个数值输出到另外一个文本里?
本帖最后由 sgzg737 于 2012-3-7 13:28 编辑
如题:
执行一个ping结果,然后把结果输出.
例:ping结果:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 72ms,最长 = 73ms,平均 = 72ms
把最短值72ms ,最长值73ms, 平均值 72ms, 丢失 0% 输出到另外一个文本文件里.其它文本内容不要
作者: find 时间: 2012-3-7 13:13
我的Win7里面ping结果是英文版的,把你自己的完整的ping结果发上来看看。
作者: sgzg737 时间: 2012-3-7 13:30
正在 Ping polaris.sina.com.cn [202.108.33.60] 具有 32 字节的数据:
来自 202.108.33.60 的回复: 字节=32 时间=58ms TTL=240
来自 202.108.33.60 的回复: 字节=32 时间=56ms TTL=240
来自 202.108.33.60 的回复: 字节=32 时间=56ms TTL=240
来自 202.108.33.60 的回复: 字节=32 时间=56ms TTL=240
202.108.33.60 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 56ms,最长 = 58ms,平均 = 56ms
作者: sgzg737 时间: 2012-3-7 13:35
输出只要求数值就可以,如:56ms,58ms,0%
作者: terse 时间: 2012-3-7 14:39
测试环境 xp- @echo off
- for /f "tokens=2,4,8 delims==,, " %%i in (pin.txt) do (
- set str1=%%i %%j
- if "%%k" neq "" set str2=%%k
- )
- echo %str1% %str2:*(=%
- pause
复制代码
作者: ivor 时间: 2012-3-7 15:24
- for /f "tokens=2,4,6 skip=10 delims==,," %%1 in ('ping 8.8.8.8') do (echo %%1,%%2,%%3)
复制代码
作者: gmwd18 时间: 2012-3-7 17:23
lz,这个你还要进行判断,能ping通的会有延迟时间,ping不通的是不会有的,ping不通有两种情况,请求超时和目的地不可达,即request timeout ,destination unreachable
作者: apang 时间: 2012-3-7 20:53
- @echo off&setlocal enabledelayedexpansion
- set n=1
- for /f "tokens=1-9 delims==,() " %%a in ('ping polaris.sina.com.cn^|findstr /i "丢失 最短"') do (
- if not "!n!"=="2" (set los=%%h&set/a n+=1) else set min=%%b&set max=%%d&set ave=%%f
- )
- (if defined min (echo !min! !max! !ave! !los!) else echo !los!)>res.txt
复制代码
作者: sgzg737 时间: 2012-3-7 23:56
非常感谢大家阿,学到不少东西.
作者: sgzg737 时间: 2012-3-7 23:59
7楼的朋友是对的,当ping批量ip的时候有出现ping不同的情况,那就只有丢失那行,没有最长最短那部分了.
正在 Ping 220.2.2.2 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
220.2.2.2 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
作者: terse 时间: 2012-3-8 01:17
回复 10# sgzg737
变更下怎么样- @echo off
- set str1=&set str2=
- for /f "tokens=2,4,8 delims==,, " %%i in ('ping baidu.com^|findstr /ir "=" ') do (
- if "%%k" neq "" (set str2=%%k)else set str1=%%i %%j
- )
- if defined str1 (echo %str1% %str2:*(=%)else echo %str2:*(=%
- pause
复制代码
作者: Hello123World 时间: 2012-4-11 14:58
- @echo off
- ping www.baidu.com|find "最短">1.txt
- start 1.txt
- pause
复制代码
作者: evenar 时间: 2012-4-11 18:06
楼上经典!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |