我想运行一个bat文件,检查curl请求的输出,并在满足条件时采取相应措施。
bat文件中的curl请求如下:
curl --insecure -X POST https://api.zilliqa.com/ -H "Content-type: application/json" --data "{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\":\"GetNumTxBlocks\", \"params\":"[""]"}"
请求的输出如下:{"id":"1","jsonrpc":"2.0","result":"5820"}
,结果是数字,一直在增长。 作为完整的新手,我不知道如何进行。 请给我建议,最好也能提供示例。
我希望IF语句在结果的后两位数大于95时作出反应。这是否还可行?现在的结果是4位数字,但是会增长,依次为5位和6位数字。
希望有可能。如果没有,请提出可能的解决方案。
答案 0 :(得分:2)
AS curl.exe返回一个类似于{"id":"1","jsonrpc":"2.0","result":"5965"}
的json字符串
您可以使用for / f解析:
@Echo off
for /f "usebackq tokens=4 delims=:}" %%A in (`
curl --insecure -X POST https://api.zilliqa.com/ -H "Content-type: application/json" --data "{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\":\"GetNumTxBlocks\", \"params\":"[""]"}"
`) do set "result=%%~A"
Echo result=%result%
要计算最后两位数字,将其模数除以100,然后与if进行比较
Set /A "Last2Digits=result %% 100"
if %Last2Digits% gtr 95 (Echo greater 95) else ( echo less or equal 95)
或在PowerShell中执行
$result = (curl.exe --% --insecure -X POST https://api.zilliqa.com/ -H "Content-type: application/json" --data "{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\":\"GetNumTxBlocks\", \"params\":"[""]"}"|ConvertFrom-json).result