Ricerca…


introduzione

JScript è in realtà il superset di Javascript (è la versione 1.8.1 - quindi alcune funzionalità più recenti non sono disponibili) e possono essere incorporate in uno script batch per estendere le funzioni dello script batch . Di solito, le tecniche di incorporamento utilizzano le direttive JScript (non fanno parte dello standard Javascript ufficiale) al fine di separare il codice batch e JScript. JScript ti consente di lavorare con oggetti Com / ActiveX, oltre che con oggetti WMI oltre al Javascript standard.

JScript incorporato in un file batch

Questo esempio che segue è stato creato dall'utente Michael Dillon da questa risposta .


Considera il seguente script:

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

//JScript aka Javascript here

Questo frammento di script fa:

  • Esegui il comando cscript che si chiama con tutti gli argomenti forniti.

  • Come la parte dopo @set @junk=1 è commentata ( /* e */ Sono validi commenti JScript),

  • JScript li ignorerà.

  • Nota: abbiamo bisogno della parte @set @junk=1 perché il file batch non riconosce /* come un comando, ma un'istruzione set sarà una soluzione alternativa. JScript riconoscerà /* come commento in modo che l'altro file batch non venga eseguito dal motore JScript.


Puoi aggiungere JScript dopo */ e iniziare ad estendere lo scripting dei file batch!

Esegui JScript con file temporanei

Come accennato qui , il metodo old-school per eseguire un altro script è utilizzando file temporanei. È echo farlo echo in un file e quindi eseguirlo (e rimuoverlo facoltativamente).


Ecco il concetto di base:

@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

Ma questo richiederebbe molte istruzioni di echo per creare un JScript relativamente grande. Ecco un metodo migliore di 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow