forfiles Fehler beim löschen von Ordnern
Ich versuche, ein Skript schreiben, das löscht die Elemente im TEMP-Ordner(N) in Windows 7. Ich möchte nur, dass es Dateien zu löschen, die 30 Tage oder älter sind. Ich mache die Prüfung in einem Ordner, die habe ich in der system-Umwelt-Variablen, wie TESTTEMP.
Habe ich das Skript wie folgt:
forfiles /p %TESTTEMP% /s /d -30 /c "cmd /c IF @ISDIR==FALSE del @FILE /q"
forfiles /p %TESTTEMP% /s /c "cmd /c IF @ISDIR==TRUE rmdir @FILE"
Meine Logik dahinter ist, dass der Prozess, sollten Sie zuerst löschen Sie alle Dateien innerhalb des TESTTEMP Verzeichnis, wenn die Datei älter als 30 Tage sind, zu prüfen und in allen Unterverzeichnissen. Dann überprüfe ich durch die verbleibenden Dateien und wenn Sie eine leer Verzeichnis, entfernen Sie es.
Dieses Skript funktioniert perfekt - alle Dateien, die ich löschen möchte, sind gelöscht, und diejenigen, die verbleiben, bleiben. Allerdings ist mir aufgefallen, dass wenn ich diese batch-Datei, erhalte ich die Fehlermeldung The system cannot find the file specified.
ich glaube, dass es einige problem mit der rmdir
Befehl und nicht in der Lage, das Verzeichnis finden, es einfach gelöscht...
Ist das etwas, was ich besorgt sein sollte, da das Skript wird zu tun, was ich will, es zu tun?
Besser noch, gibt es eine Möglichkeit anzuzeigen, welche Datei nicht gefunden wird, so kann ich versuchen, herauszufinden, was passiert auf meinen eigenen?
Vielen Dank für jede Hilfe!!!
(Für Referenz, hier ist die Ordner-Struktur vor und nach der batch-Datei ausgeführt werden, vorausgesetzt, alle Dateien älter als 30 Tage sind:)
Bevor:
-TestTemp
-More Test
testfile1.txt
testfile2.txt
testfile3.txt
testfile1.txt
testfile2.txt
testfile3.txt
Nach:
-TestTemp
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Anzeige von Dateien und Ordnern:
Wenn ein Ordner nicht leer ist, dann wird es wieder eine Harmlose Fehlermeldung. Die
2>nul
wird, entfernen Sie die Fehlermeldung.War ich immer dieses "Das system kann nicht die angegebene Datei gefunden" Fehler auch, aber es ging Weg, wenn ich entfernt das "/s" aus der ForFiles nennen. Ich wollte eigentlich nicht auf die /s, aber es sieht aus wie die poster hier haben. Wenn Sie das rekursive löschen und kann nicht Leben mit dem Fehler (oder wollen Sie nicht schlucken Sie es mit 2>nul), könnte man vielleicht nest eine nicht-rekursive ForFiles in einer rekursiven einer? Nur so ein Gedanke.