Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
@Andreas_: Danke für deine schnelle Antwort. Du hast natürlich Recht, -d gibt es nicht. Wenn ich den Befehl von dir ausführe, kommt aber nichts weiter, sprich er löscht mir die Ordner nicht raus. Ich habe zum Testen noch weitere Ordner erstellt aber es interessiert einfach nicht
Es sollte z.B. 23_01_2018 übrig bleiben und die Tage davor müssten eigentlich weg sein.
Entschuldige, aber sowas kann man doch auch jetzt per PowerShell Script machen?
das kodieren davon muss mann bisschen lernen, aber ist durchaus möglich...
Ich werde sobald ich was mehr Zeit habe ein Beispiel machen... es sei denn es soll unbedingt CMD sein haha
@mindwarper: Es soll unbedingt cmd sein
@Andreas_: Geht leider auch nicht. Heißt das wirklich @rd? Kann es sein, dass der Befehl nur nach Änderungsdatum geht und ihm eigentlich egal ist wie die Ordner heißen? Eigentlich schon oder?
@rocketworm: Warum C:\Backup_NewsletterTMP? Das wäre das Verzeichnis in das du erstmal alles verschieben möchtest?
Ich probiere es gerade an einem anderen System bei dem die Daten auch wirklich alt sind aber er mag immer noch nicht
Genau, Robocopy kann selbst nicht zum löschen benutzt werden. Das kann nur Kopieren und Verschieben.
Daher erst einen temporären Ordner erstellen, den alten kram mit robocopy da rüber schieben und anschließend den temporären Ordner löschen. Ich Benutze das um alte Logdateien zu eliminieren.
Problem: Er macht bei mir einfach nix Ich seh einfach den Fehler nicht. Er müsste doch alles Ordner, Dateien etc. in diesen TMP Ordner kopieren und löschen?
R und W habe ich rausgenommen aber das dürfte ja nicht das Problem sein.
Doch man kann robocopy zum löschen benutzen mit /MIR... es ist ein kleiner Trick
Wenn ich gleich Zuhause bin von der Arbeit, werde ich euch einen Beispiel hier posten...
OK, wenn du nen Pfad mit Leerzeichen drin hast, dann musst du den Anführungszeichen setzen. Für robocopy ist der Parameter sonst beim Leerfeld zu ende.
Also so z.B.
robocopy /move /E /minage:30 "C:\Program Files\...\web\images" C:\Backup_TMP rd /s /q C:\Backup_TMP
So, ich bin jetzt dabei und ich habe es hier für euch so wie gesagt und versprochen
@rocketworm, habe es nicht vergessen! Warum auch, als ich helfen kann werde ich auch einfacherweise
Der Clou ist einfach den Verzeichnis in das Verzieichnis NULL zu kopieren, und voila, gut ist
Oder etwa einen leeren Ordner über das "original" zu kopieren mit den Parameter /MIR (= /E und /PURGE zusammen) oder bloß nur /PURGE (d.h. ohne /E) = löschen
oder etwa nicht damit einverstanden ??? hahaha
Bloß nicht umgekehrt !!!
Das ist der Trick, was ich gemeint habe.
das ist etwa äquivalent in Unix/Linux zu
Code:
cp dir /dev/null
Also hier ist der Code was ich gebrauchen würde aufgepasst: Ich würde erst als Test die zu löschen Ordner bzw. Dateien in einen Test-Ordner Verschieben und dann testen, testen, testen...
Code:
@echo off
set srcDir="C:\Program Files\...\web\images"
set tmpDir="C:\ZZ_TEST"
set logDir="C:\ZZ_Log"
set logFile0="%logDir%\Dir-File_MOVE.log"
set logFile1="%logDir%\30day_Remove_%date%.log"
robocopy /E /ZB /BYTES /FP /NC /TS /XJ /MOVE /minage:30 %srcDir %tmpDir% /LOG:%logFile0%
robocopy /E /R:1 /W:1 /ZB /BYTES /FP /NC /TS /XJ %tmpDir% NULL /LOG:%logFile1%
Wenn dass nicht klappen würde, versuch mal diesen, mit den Leeren Verzeichnis
Code:
@echo off
set srcDir="C:\Program Files\...\web\images"
set tmpDir="C:\ZZ_TEST"
set emptyDir="C:\ZZ_EMPTY"
set logDir="C:\ZZ_Log"
set logFile0="%logDir%\Dir-File_MOVE.log"
set logFile1="%logDir%\30day_Remove_%date%.log"
robocopy /E /ZB /BYTES /FP /NC /TS /XJ /MOVE /minage:30 %srcDir %tmpDir% /LOG:%logFile0%
robocopy /MIR /R:1 /W:1 /ZB /BYTES /FP /NC /TS /XJ %emptyDir% %tmpDir% /LOG:%logFile1%
Dann wenn es gut klappt kannst Du es auch "direkt" versuchen, aber das würde ich eher abraten...
Weis auch nicht ob das mit der /minage gut gehen wird im "direkten" Modus, also eher erst verschieben in einem temporären Verzeichnis, so wie oben
Code:
@echo off
set srcDir="C:\Program Files\...\web\images"
set emptyDir="C:\ZZ_EMPTY"
set logDir="C:\ZZ_Log"
set logFile0="%logDir%\30day_Remove_%date%.log"
robocopy /MIR /R:1 /W:1 /ZB /BYTES /FP /NC /TS /XJ /minage:30 %emptyDir% %srcDir% /LOG:%logFile0%
Hoffe dass ich euch hier mit geholfen habe
Ergänzung ()
Und dann mit PowerShell... Warum auch nicht ?
Den -WhatIf Parameter kan mann nutzen zum testen, was passieren würde ohne diesen Parameter... Also ohne das aktuelle löschen = Perfekt für testen
@Andreas_: Geht leider auch nicht. Heißt das wirklich @rd? Kann es sein, dass der Befehl nur nach Änderungsdatum geht und ihm eigentlich egal ist wie die Ordner heißen? Eigentlich schon oder?
ohne Probleme. Der Pfad darf nicht in Anführungsstrichen stehen, das war der Fehler bei meinem Beispiel.
Da Forfiles /s rekursiv arbeitet kommt es zwangsläufig zu Fehlermeldungen. Forfiles will in das Verzeichnis wechseln, welches Du vorher gelöscht hast und kann dieses nicht mehr finden. Wenn Dich die Fehlermeldungen stören, kannst Du ein 2>NUL an den Befehl anhängen.
Gerade noch mal getestet - man kann den Pfad in Anführungszeichen setzen, er darf dann aber nicht mit einem Backslash abschließen. Das hier: