-
-
Save navono/992727c277bf3478a06540963f48f7e9 to your computer and use it in GitHub Desktop.
| :: Read file "package.json" into variable string, removing line breaks. | |
| set string= | |
| for /f "delims=" %%x in (package.json) do set "string=!string!%%x" | |
| rem Remove quotes | |
| set string=%string:"=% | |
| rem Remove braces | |
| set "string=%string:~2,-2%" | |
| rem Change colon+space by equal-sign | |
| set "string=%string:: ==%" | |
| rem Separate parts at comma into individual assignments | |
| set "%string:, =" & set "%" | |
| echo %version% |
Is this code able do to :
@REM prints out the 'test' command executed by node :
echo %scripts[test]%You can try it.
What about with a http request that gets json?
What about with a http request that gets json?
Well, even though you get JSON as response, the Batch language has to understand it and interpret it. That's what we are asking for, because you can't treat a large amount of data with this method.
Just a dumb question, where is %version% defined in the script?
Just a dumb question, where is
%version%defined in the script?
Let's suppose this is the package.json file the script tries to read :
{
...
"version": "1.0.0",
...
}Then Batch will take the key version from the JSON file as a new variable, which value is the version value linked into the JSON file. That's why you can't use this for huge objects such as this one :
{
...
"version": {
"debug": "1.0.0",
"production": "1.0.1"
},
...
}You would not be able to get the debug and production value using version as key.
Nice code. Sample of package.json:
{ "dummy": "invisible", "dbpath": "c:\tmp", "dbname": "hidra" }
Some limitations:
- Spaces after first '{' and before last '}' are needed
- No spaces in keys and in values
"msg": "Hi all" <-- prohibited - One space is necessary after ':'
- First key:value pair is allways unreachable
echo dummy=%dummy%
echo dbpath=%dbpath%
echo dbname=%dbname%
output:
dummy=
dbpath=c:\tmp
dbname=hidra
Great example