Suche…


Einführung

JScript ist eigentlich die Obermenge von Javascript (es ist 1.8.1 Version - so einige neuere Funktionen sind nicht verfügbar), und sie können in eine eingebettet werden batch für die Erweiterung Skript batch - Skript - Funktionen. Normalerweise verwenden Techniken zum Einbetten die JScript-Anweisungen (nicht Teil des offiziellen Javascript-Standards), um den Batch- und JScript-Code voneinander zu trennen. Mit JScript können Sie neben dem Standard-Javascript auch mit Com / ActiveX-Objekten sowie mit WMI-Objekten arbeiten.

Eingebettetes JScript in einer Stapeldatei

Das folgende Beispiel wird von Benutzer Michael Dillon anhand dieser Antwort erstellt .


Betrachten Sie das folgende Skript:

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

//JScript aka Javascript here

Dieses Skript-Snippet führt Folgendes aus:

  • cscript Befehl cscript der sich mit allen angegebenen Argumenten aufruft.

  • Da der Teil nach @set @junk=1 kommentiert wird ( /* und */ sind gültiger JScript-Kommentar),

  • JScript wird sie ignorieren.

  • Hinweis: Wir benötigen den @set @junk=1 Part, da die @set @junk=1 /* als Befehl erkennt, eine set Anweisung jedoch eine Problemumgehung ist. JScript erkennt /* als Kommentar, sodass die andere batch nicht von der JScript-Engine ausgeführt wird.


Sie können Ihr JScript nach */ hinzufügen und Ihr Batch-File-Scripting erweitern!

Führen Sie JScript mit temporären Dateien aus

Wie bereits erwähnt hier ist die Old-School - Methode ein anderes Skript ausführen , indem temporäre Dateien. Einfache echo in eine Datei und führen Sie es (und entfernen Sie sie optional).


Hier ist das Grundkonzept:

@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

Dies erfordert jedoch viele echo , um ein relativ großes JScript zu erstellen. Hier ist eine bessere Methode von 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow