【问题标题】:Format result from a batch file ping command批处理文件 ping 命令的格式化结果
【发布时间】:2015-06-06 15:35:23
【问题描述】:

我编写了一个 bat 文件,它获取我们所有商店的 IP 地址并 ping 它们。我想格式化结果,以便它只返回时间响应。

目前我正在使用类似的东西: ping -n 1 xx.xxx.xxx.xx | FIND "TTL=" >>output.txt

这只会给我一个回显请求响应,这正是我想要的。我只想摆脱粗体字。 来自 xx.xxx.xxx.xx 的回复:bytes=32 time= 22ms TTL=57

【问题讨论】:

    标签: batch-file cmd ping


    【解决方案1】:

    您可以通过for 循环运行结果,并使用空格和= 符号作为分隔符来仅提取时间。

    for /F "tokens=7 delims==< " %%A in ('ping -n 1 xx.xxx.xxx.xx ^| find "TTL"') do (
        echo %%A>>output.txt
    )
    

    【讨论】:

    • 可能会失败,例如ping -4 localhost 返回time&lt;1ms。事实上,我无法模拟极慢的响应;在那种情况下谁知道输出?我会使用 for /F "tokens=5" 然后删除 time
    • 我添加了&lt; 作为分隔符,只要 ping 不超时(例如ping 1.1.1.1),它应该可以解决。
    • 您可以在 ping 选项中添加“-w 200”,以缩短主机无法访问时的延迟。要使其适用于多个主机,请将其包装在所有参数的 for 循环中:for %%H in (%*) do (for /F ... ping %%H ...)
    • @wilb - 当然可以。如果我的解决方案对您有用,请单击我的答案旁边的复选标记。
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    相关资源
    最近更新 更多