我正在使用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,我在手册中找不到任何开关来禁用此输出。
任何想法......?
提前多多谢谢:)
答案 0 :(得分:14)
curl --silent
-s, --silent Silent or quiet mode. Do not show progress meter or error messages. Makes Curl mute.
答案 1 :(得分:1)
解决方案:为了删除curl restful api响应上的进度条,请使用--silent
标志(简称-s
)或使用--no-progress-meter
。我建议使用后者,因为您希望收到有关不良响应的警告和信息性消息。
示例:
1。
curl -s <Web-Address>
或curl --silent <Web-Address>
2。
curl --no-progress-meter <Web-Address>
-s, --silent
Silent or quiet mode. Don't show progress meter or error messages.
Makes Curl mute.
It will still output the data you ask for, potentially even to the terminal/stdout unless you redirect it.
Use -S, --show-error in addition to this option to disable progress meter but still show error messages.
--no-progress-meter
Option to switch off the progress meter output without muting or otherwise affecting warning and informational messages like -s, --silent does.
Note that this is the negated option name documented. You can thus use --progress-meter to enable the progress meter again.