【问题标题】:Batch file - Grabbing multiple lines from one ping批处理文件 - 从一个 ping 中获取多行
【发布时间】:2014-08-06 16:27:00
【问题描述】:

我们正试图向我们的互联网公司证明,我们的互联网中断的频率远比他们所说的要频繁。 为此,我正在编写一个批处理文件以每(大约)15 分钟一次 ping google.com,持续 100 小时,并将结果打印到文本文件中。唯一的问题是我想获取告诉你有多少数据包成功/失败的行,以及 ms 行中的时间。 这是我目前所拥有的:

@echo off
set/a x=0
:A
echo %date% %time >> final.txt
ping google.com | Find "Mini" >> final.txt
timeout /t 900 /nobreak > NUL
set /a x+=1
if %x% LSS 400 goto :A

我还可以将 ping 结果通过管道传输到 .txt,但我仍然不确定如何从那里解析。

【问题讨论】:

  • 为什么要尝试将其作为批处理脚本执行?我总是发现用实际语言编写脚本要容易得多。
  • @Jashaszun:为什么不呢? “最好的”语言并不总是最实际的。正如我所说:“使用你最了解的东西”
  • @Stephan 只是像 Python 或 C# 这样的实际语言比批处理文件命令具有更好的字符串操作。这两种语言之一的字符串操作代码将总是比批处理文件中的相同代码更清晰。
  • @Jashaszun 批处理脚本对我来说是最快和最容易使用的语言,因为我们的互联网目前充其量是不稳定的,而且我父亲相当流利(但他现在在工作中无法联系,这是我需要的最后一部分)。

标签: parsing batch-file ping


【解决方案1】:

请改用findstr。它能够搜索多个字符串(以空格分隔):

ping google.com | Findstr "Minimum Pakete" >> final.txt

(您必须将“Minimum”和“Pakete”翻译成当地语言)

在你的特殊情况下,你也可以搜索<space>=<space>

ping google.com | Find " = " >> final.txt

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2014-10-15
    相关资源
    最近更新 更多