【发布时间】:2014-12-03 00:26:06
【问题描述】:
我使用 curl for windows (http://www.confusedbycode.com/curl/) 和 jq (http://stedolan.github.io/jq/) 通过批处理文件与 web api 交互。我遇到的看似简单的问题是,无论我做什么,我似乎都无法抑制 JQ 的“状态”输出。特别是,它总是输出“进度状态”,例如:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 116 100 99 100 17 908 155 --:--:-- --:--:-- --:--:-- 908
一个简化的示例批处理文件是:
@echo off
@curl.exe -H "Content-Type: application/json" -d '{\"cmd\":\"login\"}' http://localhost:80/json | jq -r .session > sess.txt
请注意,jq 确实按预期运行 - 我只需要让它运行静默。似乎忽略了@echo off,我在手册中找不到任何开关来禁用此输出。
有什么想法吗...?
非常感谢:)
【问题讨论】:
-
如果这是在 stderr 中打印的,则可以使用
2>nul进行重定向 -
curl.exe -H "Content-Type: application/json" -d ' {\"cmd\":\"login\"}' http://localhost:80/json | jq -r .session 2> nul仍然显示它... -
1>nul 2>nul呢? -
这看起来像是调用 curl 的输出。为 that 重定向 stderr。
-
杰夫:就是这样!呃,我怎么可能没有注意到 :D 请提交答案,我会接受的:)
标签: json batch-file curl jq