Все эти ответы были так близки к ответу, который мне был нужен.Это попытка расширить их.
В пакетном файле
Если вы работаете из файла .bat
и вам нужна одна строка, которая позволяет экспортировать сложный файлвведите, например, jq -r ".Credentials.AccessKeyId" c:\temp\mfa-getCreds.json
переменную с именем AWS_ACCESS_KEY
, тогда вам понадобится:
FOR /F "tokens=* USEBACKQ" %%g IN (`jq -r ".Credentials.AccessKeyId" c:\temp\mfa-getCreds.json`) do (SET "AWS_ACCESS_KEY=%%g")
В командной строке
Если вы в приглашении C:\
, вы хотите одинстрока, которая позволяет вам выполнить сложную команду, такую как jq -r ".Credentials.AccessKeyId" c:\temp\mfa-getCreds.json
, для переменной с именем AWS_ACCESS_KEY
, тогда вы захотите следующее:
FOR /F "tokens=* USEBACKQ" %g IN (`jq -r ".Credentials.AccessKeyId" c:\temp\mfa-getCreds.json`) do (SET "AWS_ACCESS_KEY=%g")
Пояснение
Единственная разница между двумя ответами вышечто в командной строке вы используете один% в вашей переменной.В пакетном файле вы должны удвоить процентные знаки (%%).
Поскольку команда включает в себя двоеточия, кавычки и скобки, необходимо включить строку USEBACKQ
в параметрах, чтобыВы можете использовать обратные кавычки, чтобы указать команду для запуска, а затем всевозможные забавные символы внутри нее.