Alle Datein löschen die älter als x Tage sind
Hallo an Alle!
Ich brauche mal einen kleinen Denkanstoß zu folgender Problemstellung
Ich möchte:
- auf einem Laufwerk K: alle Dateien löschen die älter als x Tage sind
- es sollen bestimmte Ordner auf diesem Laufwerk ausgelassen werden
- die Unterordner die durch das Löschen leer werden, sollen ebenfalls gelöscht werden, die Ordner der 1. Ebene auf K: aber nicht
Das ganze soll in einer Batch-Datei laufen die ich über den Taskplaner ausführen kann.
Aus dem Forum habe ich mir dazu schon ein paar Sachen erarbeitet aber ich schaffe es nicht, alle Punkte zu lösen.
Mein 1. Versuch war:
Forfiles -pK:\Koenig\ -S -M*.* -D-20 -c"CMD /C DEL @File"
Forfiles -pK:\ -S -M*. -D-20 -c"CMD /c if @fsize==0 rd /s /q @File ist ein Ordner"
Das erfüllt zwar die Punkte eins und drei aber die Ordner der 1. Ebene auf dem Laufwerk sind dann leider auch weg.
Mein 2. Versuch war das ganze mit Robocopy umzusetzen indem ich:
- alle alten Dateien in einen anderen Ordner verschiebe
- diesen dann lösche
Das erfüllt zwar die Punkte eins und zwei aber bei drei tu ich mich schwer.
Ich hoffe ich konnte das Problem verständlich schildern und ihr habt ein paar Ideen dazu...
Schonmal vielen Dank!
Ich brauche mal einen kleinen Denkanstoß zu folgender Problemstellung
Ich möchte:
- auf einem Laufwerk K: alle Dateien löschen die älter als x Tage sind
- es sollen bestimmte Ordner auf diesem Laufwerk ausgelassen werden
- die Unterordner die durch das Löschen leer werden, sollen ebenfalls gelöscht werden, die Ordner der 1. Ebene auf K: aber nicht
Das ganze soll in einer Batch-Datei laufen die ich über den Taskplaner ausführen kann.
Aus dem Forum habe ich mir dazu schon ein paar Sachen erarbeitet aber ich schaffe es nicht, alle Punkte zu lösen.
Mein 1. Versuch war:
Forfiles -pK:\Koenig\ -S -M*.* -D-20 -c"CMD /C DEL @File"
Forfiles -pK:\ -S -M*. -D-20 -c"CMD /c if @fsize==0 rd /s /q @File ist ein Ordner"
Das erfüllt zwar die Punkte eins und drei aber die Ordner der 1. Ebene auf dem Laufwerk sind dann leider auch weg.
Mein 2. Versuch war das ganze mit Robocopy umzusetzen indem ich:
- alle alten Dateien in einen anderen Ordner verschiebe
- diesen dann lösche
Das erfüllt zwar die Punkte eins und zwei aber bei drei tu ich mich schwer.
Ich hoffe ich konnte das Problem verständlich schildern und ihr habt ein paar Ideen dazu...
Schonmal vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 274031
Url: https://administrator.de/contentid/274031
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
hast Du mal die Suchfunktion bemüht? Alleine wenn ich in der Suchfunktion "Dateien löschen" angebe, finde ich mehrere Treffer.
Gegebenenfalls musst Du die Batches nach Deinen Anforderungen anpassen.
Nur mal so als Beispiel zwei von vielen Treffern:
1. Treffer
2. Treffer
3. Treffer
Gruss Penny.
hast Du mal die Suchfunktion bemüht? Alleine wenn ich in der Suchfunktion "Dateien löschen" angebe, finde ich mehrere Treffer.
Gegebenenfalls musst Du die Batches nach Deinen Anforderungen anpassen.
Nur mal so als Beispiel zwei von vielen Treffern:
1. Treffer
2. Treffer
3. Treffer
Gruss Penny.
powershell -ExecutionPolicy ByPass -command "&{gci 'k:\*\*.*' -recurse | ?{$_.LastWriteTime -lt (get-date).AddDays(-20)} | %{remove-item $_.Fullname -Force; if(!(gci $_.DirectoryName) -and $_.DirectoryName -ne 'k:'){remove-item $_.DirectoryName -Force -Recurse}}}"