Сохранение вывода cURL и jq в переменную в пакетном скрипте - PullRequest
0 голосов
/ 10 марта 2019

Я использую эту команду для получения результата сборки в Jenkins:

curl -s  http://<jenkins_url>/job/<job_name>/lastCompletedBuild/api/json | jq ."result"

На основании этого результата мне нужно решить, какое действие выполнить с помощью пакетной команды,

Как сохранить выходные данные команды как переменную?

1 Ответ

1 голос
/ 10 марта 2019

Вы должны быть в состоянии использовать команду For /F в командном файле, чтобы возвратить вывод команды в переменную:

For /F "Delims=" %%A In ('"curl -s  http://<jenkins_url>/job/<job_name>/lastCompletedBuild/api/json | jq ."result""') Do Set "test=%%~A"
If /I "%test%"=="failed" ...DoSomething
If /I "%test%"=="success" ...DoSomethingElse
If /I "%test%"=="unstable" ...DoAnotherThing

Однако может не потребоваться устанавливать переменную вообщепотому что вы можете работать с возвращенным метавариабельным напрямую:

For /F "Delims=" %%A In ('
    "curl -s  http://<jenkins_url>/job/<job_name>/lastCompletedBuild/api/json | jq ."result""
') Do (
    If /I "%%~A"=="failed" ...DoSomething
    If /I "%%~A"=="success" ...DoSomethingElse
    If /I "%%~A"=="unstable" ...DoAnotherThing
)
...