我正在尝试将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
有人知道为什么吗?非常感谢。
答案 0 :(得分:0)
由于Mark的使用建议,我得以绕过此问题。
FOR /F "skip=7 tokens=9" %%G IN ('ping %IPADDRESS% -n 1') DO set REPONSE=%%G
echo "reponse time": "%REPONSE%", >> results.json
为我做了。 (虽然我很确定这是不好的编码,但是我正在使用单词的位置,所以如果ping命令的输出发生变化,我的代码就会停止工作。)
答案 1 :(得分:0)
除非我误解了您的问题,否则我有一种感觉,您实际上是希望您的results.json
保留行$(ping %IPADDRESS% -n 1 | find "time=")
,显然将%IPADDRESS%
扩展到其值。为此,最好建议您使用延迟扩展,例如:
Set "RESPONSE=$(ping %IPADDRESS% -n 1 | find "time=")"
SetLocal EnableDelayedExpansion
(Echo !RESPONSE!) 1>> "results.json"
EndLocal
答案 2 :(得分:0)
获取JSON文件的另一种方法是:
incorrect number of dimensions
这将产生:
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"
如果系统正在运行pwsh,则可以使用以下内容。
{
"ResponseTime": 0
}