批处理文件,将JSON文件读入字符串

3

我需要读取一个json文件:

{
   "key": {
       "subkey": "value"
   }
}

因此,我可以将其作为参数传递给命令:

program -e SETTINGS=<JSON FILE AS STRING>

1
也许这个链接是你想要的! - Compo
1
在尝试自动化之前,我会检查它是否可以使用压缩字符串来运行,例如带有转义内部双引号的字符串 program -e "SETTINGS={\"key\":{\"subkey\": \"value\"}}" - user6811411
1个回答

4

将这些问题的答案结合起来...

...我们可以编写以下批处理文件:

:: Make it possible to read immediate value of variable using !variable! syntax.
setlocal enabledelayedexpansion

:: Read file "test.json" into variable data, removing line breaks.
set data=
for /f "delims=" %%x in (test.json) do set "data=!data!%%x"

:: Escape double quotes in data
set data=%data:"=\"%

:: Finally call program with the entire content of the JSON file as parameter
program -e "SETTINGS=%data%"

请注意,当使用cmd.exe命令处理器时,命令行和环境变量的最大长度为8191个字符,因此这显然会限制您可以传递的JSON文件的最大大小。

你的长度限制是误导性的/不相关 - 批处理进一步限制变量和命令行的最大长度为8191。 - dbenham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接