So beenden Sie ein batch-Programm auf Fehler?
Habe ich eine batch-Datei, die mehrere Dinge. Wenn einer von Ihnen ausfällt, möchte ich zum beenden des gesamten Programms. Zum Beispiel:
@echo off
type foo.txt 2>> error.txt >> success.txt
mkdir bob
Wenn die Datei foo.txt nicht gefunden wird, dann möchte ich die stderr-Nachricht angehängt error.txt Datei, sonst wird der Inhalt von foo.txt angehängt success.txt. Grundsätzlich, wenn der type-Befehl gibt einen stderr, dann möchte ich die batch-Datei zum beenden und nicht erstellen Sie ein neues Verzeichnis. Wie können Sie sagen, wenn ein Fehler aufgetreten ist, und entscheiden, ob Sie weiterhin müssen, um den nächsten Befehl oder nicht?
- Ich habe den code Hinzugefügt, WENN NICHT ERRORLEVEL 0 EXIT /B echo %errorlevel% vor dem mkdir bob Befehl, aber unabhängig vom Wert der ERRORLEVEL (d.h. 0 oder 1) das Verzeichnis ist noch erstellt. Also im Grunde, ERRORLEVEL gesetzt wird, mit einem anderen Wert, ob der type-Befehl die Datei findet oder nicht, aber das Programm nicht beenden. Gedanken?
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden
ERRORLEVEL
zu überprüfen, der exit-code des vorherigen Befehls:BEARBEITEN: Dokumentation sagt: "Bedingung ist wahr, wenn der exit-code des letzten Befehls ist GLEICH oder GRÖßER als X" (Sie können dies überprüfen, mit
if /?
). abgesehen von diesen, können Sie auch überprüfen, ob die Datei vorhanden ist mitausführen mehrerer Befehle, wenn die Bedingung wahr ist:
oder