gpt4 book ai didi

windows - 在 Windows Batch 中迭代键值对

转载 作者:可可西里 更新时间:2023-11-01 11:42:44 27 4
gpt4 key购买 nike

我有一个表示设置名称及其值的键值对列表。

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

我想在批处理文件中通过 curl 请求应用指定设置(键)的每个值:

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

我遇到的问题是这些 k-v 对的保存和迭代,所以我为每一对发送了一个请求。我似乎无法弄清楚如何批量创建字典。

如果您认为有比批处理更适合此类任务的不同工具,请告诉我。

最佳答案

可以使用以下方法保存环境变量及其值:

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"

就是这样。 Delayed expansion不应在从设置文件中读回环境变量名称及其值时启用,以使用一个或多个感叹号正确读取值。

要了解使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • echo/?
  • endlocal/?
  • for/?
  • 设置/?
  • setlocal/?

另请阅读有关 Using command redirection operators 的 Microsoft 文章.

关于windows - 在 Windows Batch 中迭代键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54618310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com