Sök…


Introduktion

JScript är faktiskt supersättet för Javascript (det är version 1.8.1 - så några nyare funktioner är inte tillgängliga), och de kan inbäddas i ett batch för att utöka batch funktioner. Vanligtvis använder inbäddningstekniker JScript-direktiven (inte en del av den officiella Javascript-standarden) för att separera batch- och JScript-koden. Med JScript kan du arbeta med Com / ActiveX-objekt, såväl som med WMI-objekt utöver standard Javascript.

Inbyggd JScript i en batchfil

Följande exempel skapas av användaren Michael Dillon från det här svaret .


Tänk på följande skript:

@set @junk=1 /*
@echo off
cscript //nologo //E:jscript %0 %*
goto :eof
*/

//JScript aka Javascript here

Det här skriptavsnittet gör:

  • cscript kommandot som kallar sig själv med alla de angivna argumenten.

  • Som delen efter @set @junk=1 kommenteras ( /* och */ Är giltig JScript-kommentar),

  • JScript ignorerar dem.

  • Obs! Vi behöver @set @junk=1 del eftersom batchfilen inte känner igen /* som ett kommando, men ett set uttalande kommer att vara en lösning. JScript kommer att känna igen /* som en kommentar så att den andra batch inte körs av JScript-motorn.


Du kan lägga till din JScript efter */ och börja utöka skriptsatsen för batchfiler!

Kör JScript med tillfälliga filer

Som nämnts här är den gamla skolan metoden för att köra ett annat skript med hjälp av tillfälliga filer. Enkelt echo den till en fil och kör sedan den (och ta bort den valfritt).


Här är det grundläggande konceptet:

@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

Men detta kräver massor av echo att skapa en relativt stor JScript. Här är en bättre metod av 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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow