Batch-Datei - REN-Befehl den ErrorLevel 0 zurück, auch bei Ausfall
Dies ist in Bezug auf meine frühere Frage.
ren "C:\Temp\%%A" "%%A"
if errorlevel 0 (
"C:\Program Files\7-Zip\cmdline\7za.exe" a -tzip -mx9 "C:\temp\Zip\%%A.zip" "C:\temp\%%A"
Move "C:\temp\%%A" "C:\Temp\Archive"
)
In der oben genannten, die, WENN die zu true ausgewertet wird immer, auch wenn REN-Befehl fehlschlägt.
Die Idee ist, zu überprüfen, ob eine Datei nicht gesperrt ist, von einer anderen Anwendung verwendet,, wenn nicht, dann Archivieren Sie es und verschieben Sie es an anderer Stelle.
Wie man am besten, dies zu tun?
Danke.
- Sie sollten akzeptieren, Frank Bollack Antwort statt der bisher angenommen Antwort von rossmcm, das ist FALSCH. (Siehe mein Kommentar unter diesem.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Typ
help if
auf der Kommando-Zeile erhalten Sie einige Informationen über den errorlevel Handhabung.Das problem mit deinem code ist, dass der Ausdruck
IF ERRORLEVEL N
als wahr ausgewertet wird für jede Zahl gleich oder größer alsN
In der Regel nur ERRORLEVEL 0 bedeutet Erfolg, alle anderen (größere) Wert ist ein Zeichen dafür, dass einige Fehler. Einfach überprüfen, wenn noch Fehler aufgetreten ist, rückgängig überprüfen:
oder als alternative, beenden Sie das Skript:
kann man auch mit einem rem.Fledermaus, die machen den Fehler Ebene etwas rufen wie dieser IF ERRORLEVEL==300 aufrufen rem.bat oder Sie können einfach machen, dass jeder Fehler in level freischalten, indem eine Ebene 0. Sie können varrie auf die Dinge nicht nur wird es machen, die app läuft mehr smoothy aber es creat kein hinken in der Weise ur Ventilator Geschwindigkeit bleiben die gleichen, wie die errorlevel wird mehr cpu-Auslastung.
REN ist ein interner Befehl und nicht ERRORLEVEL (ich bin auf der Suche nach der gleichen Antwort hier)
ren
Befehl setzt dieERRORLEVEL
zu1
. Hier ist eine wirklich einfache code: pastebin.com/z1EBZ2Em. Erstellt habe ich 2 test-Dateien, die Umbenennung führt zu entweder "Zugriff Verweigert" oder "The system cannot find The file specified." angezeigt, beide von Ihnen TUN, legen Sie dieERRORLEVEL
zu1
. Blick auf diesen screenshot (zum ersten malasdsad.txt
erfolgreich umbenannt, Einstellung ERRORLEVEL auf 0): i.imgur.com/BQb2Ydg.png. Also wo hast du es testen?REN
sollteERRORLEVEL
zu 1 im Falle eines Ausfalls.