Welche internen cmd.exe-Befehle löschen das ERRORLEVEL bei Erfolg auf 0?

ine häufige Methode zur Behandlung von Fehlern in Windows-Batchskripten ist die Verwendung von
if errorlevel 1 ... oderif %errorlevel% neq 0 .... Oft möchte man, dass der Fehlerbehandlungscode das ERRORLEVEL beibehält.

Ich glaube, alle externen Befehle führen immer dazu, dass ERRORLEVEL auf einen bestimmten Wert gesetzt wird. Daher muss der Fehlerbehandlungscode ERRORLEVEL in einer Umgebungsvariablen beibehalten, bevor ein externer Befehl ausgeführt wird.

Aber was ist mit internen Befehlen? Das Problem ist, dass einige interne Befehle das ERRORLEVEL auf 0 setzen, wenn sie erfolgreich sind, andere nicht. Und ich kann keine Dokumentation finden, die angibt, welche Befehle was tun.

So ist die Frage, Welche internen Befehle löschen den ERRORLEVEL bei Erfolg auf 0? Das istnich Eine allgemeine Frage zu zurückgegebenen ERRORLEVEL-Codes, jedoch ausschließlich zu Erfolgsergebnissen.

Es gibt Posts wieWas ist der einfachste Weg, um ERRORLEVEL auf Null zurückzusetzen? und Windows Batch-Dateien: .bat vs .cmd?, die teilweise Antworten geben. Aber ich habe noch nie eine umfassende Liste gesehen.

Hinweis Ich bin schon seit Jahren neugierig. Also habe ich mich entschlossen, eine Reihe von Experimenten durchzuführen und eine endgültige Antwort zu finden. Ich poste diese Frage und Antwort, um mitzuteilen, was ich gefunden habe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage