Wie kann ich meine .bat-Datei nach einem Fehler fortsetzen?

Wie kann ich meine .bat-Datei nach einem Fehler fortsetzen?

Ich habe eine .bat-Datei in Windows, die drei Dinge tut

cmd1 arg1 arg2
cmd2 arg3 
cmd3 arg4 arg5 arg6

Manchmal kann cmd1 fehlschlagen und das ist in Ordnung, ich würde gerne weitermachen und cmd2 und cmd3 ausführen. Aber mein Bat bleibt bei cmd1 stehen. Wie kann ich das vermeiden?

Aktualisierenzur Klarstellung: Dies sind keine anderen .bat-Dateien, sondern EXE-Befehle. Hoffentlich muss ich nicht einen Baum aus .bat-Dateien erstellen, nur um dies zu erreichen.

Antwort1

&Eine weitere Möglichkeit besteht darin, das Amtszeichen ( ) zu verwenden .

cmd1 & cmd2 & cmd3

Wenn Sie ein Double verwenden, wird es nur fortgesetzt, wenn der vorherige Befehl erfolgreich abgeschlossen wurde ( %ERRORLEVEL%==0)

cmd1 && cmd2 && cmd3

Wenn Sie ein doppeltes Pipe-Zeichen ( ||) verwenden, wird der nächste Befehl nur ausgeführt, wenn der vorherige mit einem Fehlercode ( %ERRORLEVEL% NEQ 0) abgeschlossen wurde.

cmd1 || cmd2 || cmd3

Antwort2

Das hat bei mir funktioniert:

cmd.exe /c cmd1 arg1
cmd2
...

Dadurch wird cmd.exeder Befehl in einer neuen Instanz des Windows-Befehlsinterpreters ausgeführt, sodass ein fehlgeschlagener Befehl das Batch-Skript nicht unterbricht. Das /cFlag weist den Interpreter an, zu beenden, sobald die Ausführung des Befehls abgeschlossen ist.

cmd2wird ausgeführt, auch wenn der erste Befehl fehlschlägt. cmd /?Weitere Informationen finden Sie in der Windows-Eingabeaufforderung.

Antwort3

Vorausgesetzt, die Befehle sind andere .bat-Dateien, stapeln Sie die Befehle folgendermaßen:

 call cmd1
 call cmd2
 call cmd3

Antwort4

Hinzufügen zuAntwort des Kanadiers Luke, wenn Sie Ihr Skript etwas übersichtlicher halten möchten, können Sie ^die Befehlskette in einer neuen Zeile Ihres Skripts fortsetzen, etwa so:

scoop install windows-terminal & ^
scoop install joplin & ^
scoop install neovim & ^
scoop install autohotkey & ^
... & ^
scoop update -a

Statt des Hässlichen

scoop install windows-terminal & scoop install joplin & scoop install neovim & ...

verwandte Informationen