Geben integrierte MS-DOS-Befehle einen Fehler \ exit-Code zurück?

8

Ich habe keine Möglichkeit gefunden, den Fehlercode von rmdir zu erhalten. Es scheint, als ob die internen MS-DOS-Befehle keinen Fehlercode zurückgeben. Kann das jemand bestätigen?

Wie weiß ein Skript, das diese Befehle verwendet, ob die Befehle erfolgreich sind oder nicht, um den nächsten Schritt zu entscheiden? Der einfachste Weg ist, ihren Rückgabecode zu lesen, wenn er zurückgegeben wird.

Vielen Dank im Voraus.

    
Duat Le 28.06.2011, 00:08
quelle

4 Antworten

16

Nein, scheint es nicht zu sein. Wenn Sie echo %errorlevel% nach einem erfolgreichen oder fehlgeschlagenen rmdir haben, erhalten Sie in beiden Fällen 0 :

%Vor%

Für diesen Anwendungsfall particular sollten Sie das Verzeichnisexperiment nachher am besten überprüfen:

%Vor%

Interessanterweise können Sie, wenn Sie eine separate Kopie von cmd.exe aufrufen, um die Operation auszuführen, die Fehlerstufe erhalten:

%Vor%

Ich bin jedoch nicht davon überzeugt, dass das besser ist, als einfach zu überprüfen, dass das Verzeichnis verschwunden ist, nachdem Sie es entfernt haben, da Sie einen ganz neuen Befehlsinterpreter starten müssen.

    
paxdiablo 28.06.2011, 00:24
quelle
4

rmdir gab 0 zurück, wenn entweder erfolgreich oder fehlgeschlagen ist. Es scheint intuitiv, dass es einen Fehlercode zurückgeben sollte. Es gibt jedoch auch andere interne Befehle (zumindest die Befehle mkdir und dir, die ich getestet habe).

    
tcf 28.06.2011 00:27
quelle
4
%Vor%

Dies druckt ok für das erste rmdir und err für das zweite.

rmdir ist ein interner Befehl cmd.exe, daher wird% errorlevel% wahrscheinlich nicht aktualisiert.

    
Anders 28.06.2011 13:24
quelle
0

Sie tun, es ist nur schwer, die Dokumente für bestimmte Befehle zu finden, aber hier ist der Beweis dafür, dass rmdir (was laut MS-Dokumentation hier gibt keine Exit-Codes zurück) setzt eigentlich den Exit-Code :

%Vor%

Die Ausgabe wird 2 sein, wenn das Verzeichnis nicht existiert, es gibt andere Codes für Erlaubnisprobleme, etc.

    
illegal-immigrant 04.02.2016 20:48
quelle