2010-08-10 7 views

Antwort

38

Klingt, als ob Sie den Befehl "If Errorlevel" möchten. Unter der Annahme, die ausführbare Datei zurückgibt, ein nicht-0 Exit-Code bei einem Fehler tun Sie so etwas wie:

myProgram.exe 
if errorlevel 1 goto somethingbad 
echo Success! 
exit 
:somethingbad 
echo Something Bad Happened. 

Errorlevel Prüfung als Größer-oder-gleich-Check durchgeführt wird, so dass jeder Nicht-0 Exit-Wert wird den Sprung auslösen. Wenn Sie also nach mehr als einem bestimmten Exit-Wert suchen müssen, sollten Sie zuerst nach dem höchsten Exit-Wert suchen.

+2

Außerdem gibt es seit Windows 2000 eine "virtuelle" Umgebungsvariable namens '% ERRORLEVEL%', die mit '==', 'EQU',' LSS' usw. getestet werden kann. –

+0

Perfekt! Vielen Dank. – Dlongnecker

+2

Oh, für die Nachwelt, um es bei einem Fehler zu stoppen, nach: somethingbad, benutze einen "Pause" -Befehl – Dlongnecker

24

Sie können auch conditional processing symbols verwenden, um eine einfache Erfolgs-/Fehlerprüfung durchzuführen. Zum Beispiel:

myProgram.exe && echo Done! 

würde drucken Done! nur, wenn myProgram.exe mit Fehlerstufe zurückgegeben 0.

myProgram.exe || PAUSE 

die Batch-Datei zu unterbrechen würde verursachen, wenn MyProgram.EXE einen nicht-Null-Fehler-Ebene zurückgibt.

+0

Sehr cool, kompakt und tatsächlich besser lesbar würde ich sagen – Dlongnecker

+0

Ich muss zustimmen, dass diese Lösungen viel besser scheint – dmportella

+2

So könnten Sie tun: 'myProgram.exe || exit/b 1' um den Rest der Befehle zu stoppen? – rakslice

Verwandte Themen