Dateien löschen die älter sind als x Tage

Wie lassen sich Dateien löschen die älter sind als x Tage? Und das am besten noch ohne zusätzliche Software. Die Lösung liegt wie so oft im Helferlein Nummer 1: Der Windows PowerShell. In diesem Artikel beschreibe ich Dir, wie das funktioniert.

Dateien, die älter sind als x Tage, löschen

Nachdem eines meiner Lieblingstools der letzten Jahre (delage32) durch den Manipulationsschutz einiger Sicherheitsanwendungen angemahnt wurde, habe ich mir die Funktion mit der Windows PowerShell nachgebaut. Herausgekommen ist ein kleines Skript, welches kurz und knapp alle Dateien löscht, deren Alter eine frei definierbares Alter überschritten haben.

DQo8cD48YnIvPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzIj48L3NjcmlwdD4NCjwhLS0gVEVDSEZBUSAtIEltIEFydGlrZWwgLS0+DQo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSINCiAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2siDQogICAgIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItOTI5NDg1MzEyMDc1NDI3OSINCiAgICAgZGF0YS1hZC1zbG90PSI1MDc3NjQ3MTY5Ig0KICAgICBkYXRhLWFkLWZvcm1hdD0iYXV0byINCiAgICAgZGF0YS1mdWxsLXdpZHRoLXJlc3BvbnNpdmU9InRydWUiPjwvaW5zPg0KPHNjcmlwdD4NCiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsNCjwvc2NyaXB0Pjxici8+PC9wPg0K

Darüberhinaus findet eine Beschränkung auf bestimmte Dateiendungen statt. Das ist dann sinnvoll, wenn im zu überprüfenden Verzeichnis auch noch andere Dateien liegen, die eventuell nicht gelöscht werden dürfen.

Kurze Beschreibung:

  • $Source:  In dieser Variable wird der Quellordner gespeichert, in dem die zu löschenden Dateien liegen.
  • $Days:  Anzahl der Tage, nach denen Dateien gelöscht werden sollen.
  • $ext:  Array, in welchem die zu löschenden Dateiendungen gespeichert sind.

Das Skript löscht rekursiv, also auch alle Dateien in eventuell vorhandenen Unterordnern. Wenn das nicht gewünscht ist, muss in der vorletzten Zeile der Parameter „-recurse“ entfernt werden. Ebenso werden keine Ordner gelöscht, nur Dateien. Alle gelöschten Dateien werden in ein Logfile geschrieben, welches im angegebenen Quellordner gespeichert wird.

Dateien löschen, die älter sind als x Tage (PowerShell Skript)

Die Ausgabe sieht folgendermaßen aus:

Dateien löschen, die älter sind als x Tage
Dateien, die älter sind als x Tage, werden gelöscht.

Das komplette Skript kannst Du auch hier als Datei herunterladen (zip, 9 kb). Es kann auch ideal für die regelmäßige Bereinigung von Ordnerstrukturen dienen, indem es über die Windows Aufgabenplanung ausgeführt wird.

Wichtig: Die Anwendung des Skriptes geschieht auf eigene Gefahr. Ich übernehme keine Haftung für eventuelle Schäden. 

Ebenfalls interessant:

Dieser Artikel ist wie alle anderen auf dieser Seite kostenlos für Dich und ich hoffe, ich konnte Dir weiterhelfen. Wer möchte, kann diesem Blog eine kleine Aufmerksamkeit in Form einer kleinen Spende (PayPal) oder über die Amazon Wunschliste zukommen lassen.

4 Gedanken zu „Dateien löschen die älter sind als x Tage“

    • Hallo Peter,

      es wäre schön gewesen, wenn Du den Fehler etwas genauer beschrieben hättest. Ich habe aber gerade bei einem Test festgestellt, dass es Probleme bei Dateien mit Sonderzeichen gab (z.B. eckige Klammern). Das habe ich jetzt verbessert und erfolgreich getestet. Das Skript im Beitrag habe ich aktualisiert.

      Viele Grüße, René

      Antworten
  1. Hi René,

    dein Skript läuft perfekt. Vielen Dank dafür.
    Ich hatte ebenfalls das Problem mit den Sonderzeichen. Kannst du kurz erläutern, was die Änderung war?

    VG
    Flo

    Antworten
    • Hallo Flo,
      das Ende der vorletzten Zeile sah so aus: |% {remove-item $_.fullname -force -verbose} – damit gab es Probleme bei den Sonderzeichen

      Antworten

Schreibe einen Kommentar