我有一个表示设置名称及其值的键值对列表。
ssl=strict
always_use_https=on
minify={"css":"off","html":"off","js":"off"}
key=value
many=more
我想在批处理文件中对带有卷曲请求的指定设置(键)应用每个值:
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对,并通过它们进行迭代,因此我为每对发送一个请求。我似乎无法弄清楚如何批量创建字典。
如果您认为有比批处理更适合这种任务的工具,请告诉我。
答案 0 :(得分:2)
使用以下方法保存环境变量及其值:
let arr = [1, 1, 2, 2, 3, 3, 4, 5]
let remove = [1, 3, 2, 4, 5].sort((a,b)=>a-b)
let op = arr.sort((a,b)=>a-b).filter(e => ( remove.includes(e) ? (remove.shift(), false) : true ))
console.log(op)
将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
就是这样。从设置文件中读取环境变量名称及其值以正确读取带有一个或多个感叹号的值时,不应启用Delayed expansion。
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
for /F "usebackq delims=" %%I in ("%SettingsFile%") do set "%%I"
echo /?
endlocal /?
for /?
set /?
另请阅读有关Using command redirection operators的Microsoft文章。