Wie bewahren Sie den ERRORLEVEL in eine variable?
Ich versuche zu speichern, die ERRORLEVEL
environment-variable in eine lokale batch-variable. Aber es ist immer stellt sich heraus, dass 0
.
CALL foo.exe
SET LEVEL=%ERRORLEVEL%
IF ERRORLEVEL 1 (
SET /A ERRORCOUNT=ERRORCOUNT+1
) ELSE (
SET /A OK=OK+1
)
ECHO/>> logtemp.txt
ECHO ** EXIT %LEVEL% *******************************
Habe ich versucht ECHO %ERRORLEVEL%
aber es ist auch immer drucken 0
zu.
foo.exe
ist einen Fehler zu erzeugen, und es kann gesehen werden, indem ECHO %ERRORLEVEL%
von der Eingabeaufforderung und die ERRORCOUNT
ist korrekt aktualisiert.
InformationsquelleAutor Max Kielland | 2013-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass Ihr problem ist nicht das errorlevel, es ist Ihre foo.exe.
Einen einfachen test mit einem errorlevel arbeitet.
(call)
legt den errorlevel mit 1 fest,Zweites Beispiel:
Oder mit verzögerter expansion
ERRORLEVEL
Umwelt-Variablen, die if ... else ist in Ordnung. Das problemLEVEL
zu denERRORLEVEL
Umgebungsvariable Wert, soECHO %LEVEL%
wird, drucken Sie die UmgebungsvariableERRORLEVEL
für dieCALL
.Getestet hab ich den code und es funktioniert. Aber wahrscheinlich zeigen Sie nicht den relevanten Teil des Skripts. Ich denke: Ihr problem ist die Prozent-expansion in code-Blöcken. Siehe das zweite Beispiel
Danke, das wusste ich nicht !VARIABLE! syntax... Funktioniert jetzt 🙂
InformationsquelleAutor jeb
ERRORLEVEL
und%ERRORLEVEL%
sind nicht die gleichen (siehe http://blogs.msdn.com/b/oldnewthing/archive/2008/09/26/8965755.aspx).Die Linie
sollte
Ausbeute der Wunsch beantworten.
InformationsquelleAutor tintinhoking