Wie die Rückkehr der exit-status von einer HTA mit vbscript - () an den aufrufenden Batch-Datei
Wie die Rückkehr der exit-status von einer HTA mit vbscript - () an den aufrufenden Batch-Datei ?
Meine batch-Datei-code
@echo OFF
echo Configuring Test...
call AppConfigurationEditor.hta
call TestConfigurationEditor.hta
1.Wenn Benutzer klicken Sie auf die Schaltfläche "ABBRECHEN" auf der ersten HTA-I dont wanna run 2. HTA.
2.Batch-Skript ruft/zeigt die 2. HTA-sofort, nicht warten, bis das schließen der 1. HTA.
Du musst angemeldet sein, um einen Kommentar abzugeben.
HTAs keine implementiert, die Art und Weise der Rückgabe eines errorlevel an den Aufrufer-Prozess.
WScript.Quit
können nicht verwendet werden. Die lenguage engine vbscript/javascript/... ist das gleiche, aber das host-Objekt, das instanziiert wird, wird der Motor nicht den gewöhnlichen windows-scripting-host, es ist ein browser-Objekt, soWScript
Objekt nicht vorhanden ist.window.close
Methode kann nicht verwendet werden. Es kann in der Nähe der hta, aber geben keinen Rückgabewert.Der übliche Weg der Verwendung einer hta für die Rückgabe eines Wertes an den aufrufenden Prozess ist die Persistenz dieser Wert in einer Datei oder in der registry. Dann wird der aufrufende Prozess abrufen können, die erforderlichen Werte.
If errorlevel ist erforderlich, es gibt keine direkte Methode. Aber eine indirekte Methode, die implementiert werden können. Nur die WMI verwenden, um abrufen der Liste der Laufenden Prozesse suchen Sie die aktuellen hta, und für diesen Prozess Aufruf der Terminate-Methode, die es erlauben, legen Sie eine Ausfahrt Wert.
Dann können Sie es aufrufen batch-Datei als
bekommen sollte den job zu erledigen - vorausgesetzt
errorlevel
zurückgegeben wird als 0 fürterminated normally
und etwas anderes für "annulliert".Den
echo %errorlevel%
Linie ist einfach da, zum testen, nur zeigen Ihnen, was Los ist.start /wait
wird der start-Ziel, und halten Sie die batch, bis der Prozess abgeschlossen ist. Die extra paar Kaninchen Ohren tatsächlich umschließen die neuen Fenster-title - redundant hier, aber das beste zu behalten, alsstart
sonst nimmt die erste Zeichenfolge in Anführungszeichen vom Ziel (wenn überhaupt) als Fenster-Titel.Müssen Sie das Ergebnis der gedrückten Taste als
Exit Code
werden können erholt in denerrorlevel
mitWscript.Quit [Value]
in Ihren zwei Hta-code (oder in den ersten, wenn Sie nur wollen, um zu überprüfen, das erste)Exemple :
Test.vbs
runtest.bat
if %errorlevel% 1 echo dah
. Verwenden Sie mit Vorsicht, wenn. Es ist immer ein größer-als-oder-gleich-text. Also, wenn die form, die Sie möglicherweise überprüfen, %errorlevel% 3 Regel 3 oder höher, dann überprüfen Sie die %errorlevel% 2 zu fangen, "2", dann überprüfen Sie den Status von %errorlevel% 1 fangen 1. Es ist ein gotcha. %errorlevel% equ 1 ist anders.