从.json文件中读取并在Windows命令行上设置变量

时间:2013-10-07 12:11:25

标签: batch-file command-line

我有一点 config.json

{
    "version":"0.2.2",
    "test":true
}

我想读取这个文件并在窗口命令行中设置与json文件中的键和值相对应的变量,可能类似于这个伪代码:

for /f %%A in (config.json) do (

    SET key = value
)

echo %VERSION%
echo %TEST%

我该怎么做?

1 个答案:

答案 0 :(得分:7)

这解决了提出的问题:

@echo off
setlocal EnableDelayedExpansion
set c=0
for /f "tokens=2 delims=:, " %%a in (' find ":" ^< "config.json" ') do (
   set /a c+=1
   set val[!c!]=%%~a
)
for /L %%b in (1,1,!c!) do echo !val[%%b]!
pause

此版本将输出version = 0.2.2test = true
唯一的变化是在第6行

@echo off
setlocal EnableDelayedExpansion
set c=0
for /f "tokens=1,2 delims=:, " %%a in (' find ":" ^< "config.json" ') do (
   set /a c+=1
   set val[!c!]=%%~a = %%~b
)
for /L %%b in (1,1,!c!) do echo !val[%%b]!
pause

这解决了下一个格式请求:variable-name = value

@echo off
for /f "tokens=1,2 delims=:, " %%a in (' find ":" ^< "config.json" ') do (
   set "%%~a=%%~b"
)
set
pause

2016年2月的请求可以通过此解决,假设文件如下所示:

 {
 location : "C:\\Test Folder"
 }

下面的批处理脚本

@echo off
for /f "tokens=1,2,*" %%a in (' find ":" ^< "config.json" ') do echo "%%~c"
pause