JScript is actually the superset of
batch script for extending
This following example is created by user Michael Dillon from this answer.
Consider the following script:
This script snippet does:
cscript command which calls itself with all the arguments provided.
As the part after
@set @junk=1 is commented(
*/ Are valid JScript comment),
JScript will ignore them.
Note: We need the
@set @junk=1 part because the batch file does not recognize
/* as a command, but a
set statement will be a workaround. JScript will recognize
/* as a comment so the other
batch file will not be executed by JScript engine.
You can add your JScript after
*/ and start extending your batch file scripting!
As mentioned here, the old-school method to run another script is by using temporary files. Simple
echo it into a file and then run it(and remove it optionally).
Here's the basic concept:
@echo off echo //A JS Comment > TempJS.js echo //Add your code>>TempJS.js cscript //nologo //e:cscript.exe TempJS.js del /f /s /q TempJS.js
But this would require lots of
echo statements to create a relatively large JScript. Here's a better method by Aacini.
@echo off setlocal rem Get the number of the "<resource>" line for /F "delims=:" %%a in ('findstr /N "<resource>" "%~F0"') do set "start=%%a" rem Skip such number of lines and show the rest of this file (for /F "usebackq skip=%start% delims=" %%a in ("%~F0") do echo %%a) > TempJS.js cscript //nologo //e:cscript.txt TempJS.js del /f /s /q TempJS.js goto :EOF <resource> JScript JScript JScript