Mein Beitrag vom 25.01.2008 “Dateien nach Datum löschen” zeigt beispielhaft, wie alle Dateien gelöscht werden können, die ein bestimmtes Datum überschritten haben.
Heute möchte ich zeigen, wie die Dateien gelöscht werden können, die älter als n Tage sind.
Und so geht das…
1
2
| $Heute = Get-Date
Get-Childitem T:\Ablage -recurse | Where-Object {($Heute - $_.LastWriteTime).Days -gt 10} | Remove-Item |
Das Beispiel erzeugt zuerst die Variable “Heute” welche das aktuelle Datum enthält. Danach Sucht es alle Dateien aus dem Verzeichnispfad “T:\Ablage” und deren Unterobjekte. Anschließend wird jedes Objekt durchlaufen und überprüft, ob das Änderungsdatum älter dem Datum minus 10 Tagen ist. Wenn ja, so wird gelöscht, wenn nicht, so wird mit dem nächsten Objekt fortgefahren.
Zusätzliches:
Mit Hilfe von “-WhatIf” hinter dem Remove-Item wird der Löschvorgang nur simuliert und nicht wirklich ausgeführt, was für Testzwecke sehr nützlich ist.
Weiter könnte hier statt dem “Remove-Item” auch etwas anderes passieren, z.B. das Verschieben oder Komprimieren der Dateien.