5

私はこの小さなconfig.jsonを持っています:

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

このファイルを読み取り、ファイルのキーと値に対応するウィンドウ コマンド ラインに変数を設定したいと思いjsonます。おそらく、次の疑似コードのようなものです。

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

    SET key = value
)

echo %VERSION%
echo %TEST%

どうすればいいですか?

4

1 に答える 1

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
于 2013-10-07T12:47:31.603 に答える