Wie bekommt man einen Rückgabewert von einer Batchdatei in das VBScript - 2
Hallo leider ist der Beitrag der meine Lösung zu 95% enthält bereits als gelöst makiert.
Deshalb eröffne ich einen neuen Beitrag um meine Frage zu ergänzen.
Thread: Wie bekommt man einen Rückgabewert von einer Batchdatei in das VBScript
Aktuelle Situation:
run.vbs
map.bat -1
map.bat - 2
So nun mein Problem. Ich brache in einem VBS Script den Rückgabewert einer Batchdatei.
Leider gibt dieser nur den errorlevel des letzten Befehles zurück. (map.bat -1 geht _ map.bat -2 geht nicht)
Gibt es irgendeine Möglichkeit die Errorlevel hochzuzählen?
Evtl. ein Ansatz:
nach jedem Befehl if not %errorlevel% == 0 set /a error = %error% + 1
Habt ihr eine Lösung für mein Problem?
Deshalb eröffne ich einen neuen Beitrag um meine Frage zu ergänzen.
Thread: Wie bekommt man einen Rückgabewert von einer Batchdatei in das VBScript
Aktuelle Situation:
run.vbs
Set Runobject = WScript.CreateObject("WScript.Shell")
Runkey = Runobject.Run ("map.bat" ,3, true)
Wscript.Echo Runkey
If Runkey = 0 Then
Wscript.Echo Runkey & " OK "
Else
Wscript.Echo Runkey & " ERROR"
End If
ping 123.2.2.1 -n 1
ping 127.0.0.1 -n 1
ping 127.0.0.1 -n 1
ping 123.2.2.1 -n 1
So nun mein Problem. Ich brache in einem VBS Script den Rückgabewert einer Batchdatei.
Leider gibt dieser nur den errorlevel des letzten Befehles zurück. (map.bat -1 geht _ map.bat -2 geht nicht)
Gibt es irgendeine Möglichkeit die Errorlevel hochzuzählen?
Evtl. ein Ansatz:
nach jedem Befehl if not %errorlevel% == 0 set /a error = %error% + 1
Habt ihr eine Lösung für mein Problem?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96247
Url: https://administrator.de/contentid/96247
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo EasyEyeSystem!
Ein
sollte funktionieren - falls Du aber gar nicht die Anzahl der Fehler wissen willst, sondern nur festgehalten werden soll, dass überhaupt mindestens 1 Fehler aufgetreten ist, kannst Du folgende Variante (die auch ohne "delayedExpansion" in einer "for"-Schleife funktioniert) verwenden:
Soferne das verwendete BS (auf beiden Seiten) zumindest XP ist, ließe sich der Umweg über Batch auch ganz vermeiden: http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/he ...
Grüße
bastla
Ein
set /a error=0
...
if errorlevel 1 set /a error+=1
...
exit /b %error%
set error=0
...
if errorlevel 1 set error=1
...
exit /b %error%
Grüße
bastla