Kri*_*iem 4 command-line batch-file
我有这个小config.json:
{
"version":"0.2.2",
"test":true
}
Run Code Online (Sandbox Code Playgroud)
我想读取这个文件并在窗口命令行中设置与json文件中的键和值相对应的变量,可能类似于这个伪代码:
for /f %%A in (config.json) do (
SET key = value
)
echo %VERSION%
echo %TEST%
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
这解决了提出的问题:
@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
Run Code Online (Sandbox Code Playgroud)
此版本将输出version = 0.2.2,test = 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
Run Code Online (Sandbox Code Playgroud)
这解决了下一个格式请求:variable-name = value
@echo off
for /f "tokens=1,2 delims=:, " %%a in (' find ":" ^< "config.json" ') do (
set "%%~a=%%~b"
)
set
pause
Run Code Online (Sandbox Code Playgroud)
假设文件如下所示,可以使用此解决2016年2月的请求:
{
location : "C:\\Test Folder"
}
Run Code Online (Sandbox Code Playgroud)
下面的批处理脚本
@echo off
for /f "tokens=1,2,*" %%a in (' find ":" ^< "config.json" ') do echo "%%~c"
pause
Run Code Online (Sandbox Code Playgroud)