-
-
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