Windows: Batch – Befehl nur ausführen bei (Miss-)Erfolg

Unter Windows kann man in Batch-Skripten den Erfolg oder Misserfolg eines Befehls mit dem Rückgabewert (Errorlevel, exit code) feststellen. Mit entsprechenden Operatoren lässt sich das sogar noch einfacher umsetzen.

Statt auf die Art

befehl...
if %errorlevel% ...

zu hantieren, kann man mit einer bedingten Befehlsverkettung arbeiten. So stehen die Operatoren „&&“ dafür den zweiten Befehl nur bei Erfolg und „||“ nur bei Misserfolg auszuführen. Das Ganze lässt sich sogar miteinander kombinieren.

Ein Beispiel:

taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder Beenden fehlgeschlagen

Die Ausgabe im Erfolgsfall:

C:\Users\user>taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder beenden fehlgeschlagen
ERFOLGREICH: Ein Beendigungssignal wurde an den Prozess
"test123.exe" mit der PID 4376 geschickt.
Prozess beendet

Die Ausgabe bei Misserfolg:

C:\Users\user>taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder beenden fehlgeschlagen
FEHLER: Der Prozess "test123.exe" wurde nicht gefunden.
Prozess nicht gefunden oder Beenden fehlgeschlagen

Quellen:

stackoverflow – Killing a process in Batch and reporting on success

Wikibooks – Batch-Programmierung: Batch-Operatoren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.