Перебор пар ключей-значений в пакете Windows - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть список пар ключ-значение, представляющих имена настроек и их значения.

ssl=strict 
always_use_https=on
minify={"css":"off","html":"off","js":"off"}
key=value
many=more

Я хочу применить каждое значение в указанной настройке (ключ) с запросом скручивания в пакетеfile:

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/%zone%/settings/%key%" ^
    -H "X-Auth-Email: %email%" ^
    -H "X-Auth-Key: %auth%" ^
    -H "Content-Type: application/json" ^
    --data "{\"value\":\"%value%\"}" ^
    --insecure

Проблема, с которой я столкнулся, заключается в сохранении этих kv-пар и их итерации, поэтому я отправляю запрос для каждой пары.Кажется, я не могу понять, как создать словарь в пакетном режиме.

Если вы считаете, что есть другой инструмент, чем пакетный, более подходящий для такого рода задач, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 10 февраля 2019

Сохранение переменных среды с их значениями можно выполнить с помощью:

set "SettingsFile=%TEMP%\%~n0.txt"
setlocal EnableExtensions EnableDelayedExpansion
(
    echo ssl=!ssl!
    echo always_use_https=!always_use_https!
    echo minify=!minify!
    echo key=!key!
    echo many=!many!
) >"%SettingsFile%"
endlocal

Используйте для SettingsFile все, что вы хотите, но дерево каталогов должно существовать.

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

for /F "usebackq delims=" %%I in ("%SettingsFile%") do set "%%I"

Вот и все. Задержка расширения не следует включать при считывании имен переменных среды и их значений из файла настроек для правильного считывания значений с одним или несколькими восклицательными знаками.

Для понимания используемых команд и того, какони работают, открывают окно командной строки, выполняют там следующие команды и полностью читают все страницы справки, отображаемые для каждой команды.

  • echo /?
  • endlocal /?
  • for /?
  • set /?
  • setlocal /?

Читайте также статью Microsoft о Использование операторов перенаправления команд .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...