首页 > 解决方案 > FIND:管道 ping 命令时参数格式不正确

问题描述

我正在尝试将 ping 测试的响应发送到 json 文件。

set RESPONSE=$(ping %IPADDRESS% -n 1 | find "time=")
echo %RESPONSE% >> results.json 

当我尝试 ping %IPADDRESS% -n 1 | 直接在 cmd 提示符下找到“time=”就可以了。但是当我在脚本中运行它时,我收到以下错误:

FIND: Parameter format not correct

有谁知道为什么?非常感谢。

标签: batch-filecmdfindcygwin

解决方案


获取 JSON 文件的另一种方法是:

powershell -NoLogo -NoProfile -Command ^
    "Test-Connection -ComputerName localhost -Count 1 |" ^
        "Select-Object -Property ResponseTime |" ^
        "ConvertTo-Json |" ^
        "Out-File -FilePath 'C:\src\t\results.json' -Encoding ascii"

这会产生:

{
    "ResponseTime":  0
}

如果系统正在运行 pwsh,则可以使用以下内容。

PS C:\> Test-Connection -ComputerName www.ibm.com -Count 1 |
    Select-Object -Property Latency |
    ConvertTo-Json
{
  "Latency": 38
}
PS C:\> $PSVersionTable.PSVersion.ToString()
7.0.1

推荐阅读