我這個小config.json:讀取和設置的Windows命令行中的變量從以.json文件
{
"version":"0.2.2",
"test":true
}
我想在窗口中的命令來讀取這個文件,並設置變量從json
文件對應的鍵和值線,也許是這樣的僞代碼:
for /f %%A in (config.json) do (
SET key = value
)
echo %VERSION%
echo %TEST%
我怎麼會做呢?
我這個小config.json:讀取和設置的Windows命令行中的變量從以.json文件
{
"version":"0.2.2",
"test":true
}
我想在窗口中的命令來讀取這個文件,並設置變量從json
文件對應的鍵和值線,也許是這樣的僞代碼:
for /f %%A in (config.json) do (
SET key = value
)
echo %VERSION%
echo %TEST%
我怎麼會做呢?
這解決了作爲提出的問題:
@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.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
這解決了下一個格式請求:可變-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
顯示您在輸出期望的精確數據值,因爲你的數據格式不一樣。 – foxidrive
我期望的輸出是:'0.2.2'和'true' – Kriem