Open agamsol opened 3 years ago
You mean by passing the string directly or as part of a bat file?
i mean, being able to merge the json exectutor with my main batch script by calling it as a function
example:
@echo off
REM calling the function to parse the json value
call :JsonExtractor file.js "name"
pause >nul
exit /b
:JsonExtractor
REM The hybrid batch "Json Executor" function here.
REM Basically being able to call a label instead of calling a file
goto :EOF
try like this:
@if (@CodeSection == @Batch) @then
@echo off
call :jsonextractor "c:\file.json" "something[0].something_else"
goto :eof
:jsonextractor
cscript /nologo /e:JScript "%~f0" %*
goto :EOF
@end // end batch
var htmlfile = WSH.CreateObject('htmlfile');
htmlfile.write('<meta http-equiv="x-ua-compatible" content="IE=9" />');
var JSON = htmlfile.parentWindow.JSON;
//needs file existence checks
var jsloc=WScript.Arguments.Item(0);
var jsonPath=WScript.Arguments.Item(1);
FSOObj = new ActiveXObject("Scripting.FileSystemObject");
var txtFile=FSOObj.OpenTextFile(jsloc,1);
var json=txtFile.ReadAll();
try {
var jParsed=JSON.parse(json);
}catch(err) {
WScript.Echo("Failed to parse the json content");
htmlfile.close();
txtFile.close();
WScript.Exit(1);
//WScript.Echo(err.message);
}
WScript.Echo(eval("JSON.stringify(jParsed."+jsonPath+")"));
htmlfile.close();
txtFile.close();
I mean As a complete function So that i can add it at the very bottom of the script
Because of the way the hack works - the jscript code allays should be at the end. Think for the @end // end batch
as the end of the batch code - now the jsonextractor function is at the end of it.
i mean the main normal batch script at the top and for the very bottom a pure batch hybrid script
Help?
Additionally to already answered.
Long reading:
https://www.dostips.com/forum/viewtopic.php?f=3&t=5543 https://stackoverflow.com/questions/9074476/is-it-possible-to-embed-and-execute-vbscript-within-a-batch-file-without-using-a/9074483#9074483
JScript example:
@set @dummy=0 /*
@echo off
rem Your batch script is here...
cscript /nologo /e:jscript "%~f0" %*
exit /b
*/
// JScript code
WScript.Echo(123)
Or
0</* :
@echo off
rem Your batch script is here...
cscript /nologo /e:jscript "%~f0" %*
exit /b
*/
// JScript code
WScript.Echo(123)
VBScript example:
::'@echo off
::'rem You batch script is here...
::'cscript /nologo /e:vbscript "%~f0" %*
::'exit /b
' VBScript code
WScript.Echo 123
The is a
SUB
character: dec=26
hex=0x1A
What i want to do is to add the jsonextractor.bat in to a batch file but call it as a label and not a file how can i do that?