roadrunner0815
Goto Top

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!

Content-ID: 274031

Url: https://administrator.de/contentid/274031

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

Penny.Cilin
Penny.Cilin 08.06.2015 um 15:56:04 Uhr
Goto Top
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.
Roadrunner0815
Roadrunner0815 08.06.2015 um 16:04:07 Uhr
Goto Top
Hallo Penny,

ich dachte ich hatte alle gefunden was das Forum dazu so bietet. Danke für die Links, da schau ich morgen nochmal rein!
114757
114757 08.06.2015 aktualisiert um 16:22:26 Uhr
Goto Top
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}}}"  
Gruß jodel32