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

[文本处理] 在win7下如何把ping结果的某个数值输出到另外一个文本里?

本帖最后由 sgzg737 于 2012-3-7 13:28 编辑

如题:
执行一个ping结果,然后把结果输出.
例:ping结果:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 72ms,最长 = 73ms,平均 = 72ms
把最短值72ms ,最长值73ms, 平均值 72ms, 丢失 0% 输出到另外一个文本文件里.其它文本内容不要

我的Win7里面ping结果是英文版的,把你自己的完整的ping结果发上来看看。

TOP

正在 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

TOP

输出只要求数值就可以,如:56ms,58ms,0%

TOP

测试环境 xp
  1. @echo off
  2. for /f "tokens=2,4,8 delims==,, " %%i in (pin.txt) do (
  3. set str1=%%i %%j
  4. if "%%k" neq "" set str2=%%k
  5. )
  6. echo %str1% %str2:*(=%
  7. pause
复制代码

TOP

  1. for /f "tokens=2,4,6 skip=10 delims==,," %%1 in ('ping 8.8.8.8') do (echo %%1,%%2,%%3)
复制代码

TOP

lz,这个你还要进行判断,能ping通的会有延迟时间,ping不通的是不会有的,ping不通有两种情况,请求超时和目的地不可达,即request timeout ,destination unreachable

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set n=1
  3. for /f "tokens=1-9 delims==,() " %%a in ('ping polaris.sina.com.cn^|findstr /i "丢失 最短"') do (
  4.     if not "!n!"=="2" (set los=%%h&set/a n+=1) else set min=%%b&set max=%%d&set ave=%%f
  5. )
  6. (if defined min (echo !min! !max! !ave! !los!) else echo !los!)>res.txt
复制代码

TOP

非常感谢大家阿,学到不少东西.

TOP

7楼的朋友是对的,当ping批量ip的时候有出现ping不同的情况,那就只有丢失那行,没有最长最短那部分了.

正在 Ping 220.2.2.2 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

220.2.2.2 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

TOP

回复 10# sgzg737
变更下怎么样
  1. @echo off
  2. set str1=&set str2=
  3. for /f "tokens=2,4,8 delims==,, " %%i in ('ping baidu.com^|findstr /ir "=" ') do (
  4. if "%%k" neq "" (set str2=%%k)else set str1=%%i %%j
  5. )
  6. if defined str1 (echo %str1% %str2:*(=%)else echo %str2:*(=%
  7. pause
复制代码

TOP

  1. @echo off
  2. ping www.baidu.com|find "最短">1.txt
  3. start 1.txt
  4. pause
复制代码

TOP

楼上经典!

TOP

返回列表