Abfrage eines bestimmten ERRORLEVEL


Problembeschreibung


Wie kann ich einen bestimmten ERRORLEVEL in einer Batchdatei abfragen?

Lösung


Das MS-DOS Statement "IF ERRORLEVEL <Nummer>" testet Errorlevels, die gleich oder größer <Nummer> sind. Wenn Sie dagegen nur einen ganz bestimmten ERRORLEVEL testen wollen, können Sie folgende Syntax verwenden:
   IF ERRORLEVEL <Nr> IF NOT ERRORLEVEL <Nr+1> <Kommando>
wobei <Nr> die Nummer des gewünschten Errorlevels ist und <Nr+1> der ganzzahlige Nachfolger dieses Errorlevels. Die Zahl <Nr+1> muß von Hand berechnet werden, weil der MS-DOS Kommandointerpreter keine mathematischen Berechnungen ausführen kann.

Das eingeschlossene IF-Statement erst erlaubt die spezielle Selektion des Errorlevels, weil der NOT-Operator die Ungleichheit umkehrt.

Das Kommando
   IF ERRORLEVEL 5 ...
ist äquivalent mit dem algebraischen Konstrukt
   IF ERRORLEVEL = 5 OR ERRORLEVEL > 5 THEN ...
während das Kommando
   IF NOT ERRORLEVEL 6
äquivalent ist mit dem algebraischen Konstrukt
   IF ERRORLEVEL < 6 THEN ...
Die Kombination der beiden IF Kommandos bewirkt, daß das <Kommando> nur abgearbeitet wird, wenn beide IF-Kommandos wahr sind.

Die gleiche Syntax kann verwendet werden, um auch ganze Bereiche von Errorlevel zu testen: durch einfache Erhöhung des 2. Wertes <Nr+1> auf <Nr+x>.