So löschen Sie Dateien, die älter als N Tage sind, automatisch unter Windows

Windows 10 verfügt über integrierte Funktionen zum Freigeben von Speicherplatz durch Löschen alter Dateien im Verzeichnis %temp% und im Ordner Downloads . In den Windows 10-Einstellungen gibt es eine Option („Speicher“), mit der temporäre Dateien, die Ihre Apps nicht verwenden, Dateien in den Downloads, die in den letzten x Tagen nicht geändert wurden, oder Dateien, die x Tage lang im Papierkorb liegen, automatisch gelöscht werden.

Außerdem löscht das Tool zur Datenträgerbereinigung Dateien im Verzeichnis %temp%, auf die in den letzten 7 Tagen nicht zugegriffen wurde.

Die Einstellungen für Datenträgerbereinigung und -speicher zielen jedoch nur auf die Ordner %temp% und Downloads . Um Dateien zu löschen, die älter als eine bestimmte Anzahl von Tagen in einem benutzerdefinierten Ordner sind, z. B. in Ihrem Ordner " Documents ", müssen Sie eine der folgenden drei Methoden verwenden:

So löschen Sie automatisch Dateien, die in Windows älter als N Tage sind

Bei einigen der folgenden Methoden können Sie entweder die Eigenschaft "Erstellungsdatum" oder "Änderungsdatum" von Dateien als Basis verwenden, um "ältere" Dateien gemäß Ihren Anforderungen zu bestimmen.

Methode 1. Löschen Sie Dateien, die älter als 'N' Tage sind, mit dem Datei-Explorer

Mit der Windows-Suche können Sie problemlos die Liste der Dateien abrufen, die auf einem ausgewählten Datumsbereich basieren, oder Dateien, die älter als ein bestimmtes Datum sind.

  1. Öffnen Sie den Ordner, in dem Sie ältere Dateien löschen möchten.
  2. Klicken Sie auf das Suchfeld oder drücken Sie die Taste F3 auf der Tastatur.
  3. Klicken Sie auf die Schaltfläche Änderungsdatum und wählen Sie eine der Dropdown-Optionen aus, z. B. "Letzte Woche".

  4. Die Windows-Suche filtert die Ergebnisse sofort. Wählen Sie die Dateien aus, die Sie löschen möchten, und drücken Sie die Entf-Taste auf Ihrer Tastatur.

Wichtig: Standardmäßig sucht die Windows-Suche nach Dateien im aktuellen Ordner UND in allen Unterordnern. Um die Suche nur auf den aktuellen Ordner zu beschränken, klicken Sie in der Suchsymbolleiste / -leiste auf die Schaltfläche "Aktueller Ordner".

$config[ads_text6] not found

Erweiterte Suchabfrage: Operatoren "Datum"

Wenn die voreingestellten Datumsbereichsoptionen nicht zu Ihnen passen, können Sie eine benutzerdefinierte Suchabfrage eingeben. Geben Sie im Suchfeld Folgendes ein, um Dateien aus einem benutzerdefinierten Datumsbereich herauszufiltern:

 Datum geändert: 01.01.2017 .. 31.12.2017 

Dadurch werden Dateien gefunden, die während des genannten Datumsbereichs geändert wurden. Sie können auch die datecreated: dateaccessed: oder date: (insbesondere für Kamerabilder) verwenden. Beachten Sie das date: Bediener verwendet die von der Kamera aufgezeichneten Datumsmetadaten (EXIF).

VERBINDUNG: So suchen Sie nach Dateien, die zwischen zwei Daten in Windows erstellt wurden

Um Dateien zu finden, die nach dem 1. November 2017 nicht geändert wurden, verwenden Sie das Symbol kleiner als ( < ) mit dem Operator datemodifed: wie datemodifed: :

 datemodifiziert: <11/1/2017 

Wählen Sie die Dateien aus der Liste aus und löschen Sie sie.

Tipp: Anstatt den Datumsbereich manuell datemodified: im Suchfeld den Operator datemodified: oder datecreated: oder dateaccessed: oder date: und lassen Sie den Datei-Explorer die Datumsauswahl für Sie dateaccessed: . Sie können dann ein Datum oder einen Datumsbereich aus dem Popup auswählen. Um einen Datumsbereich anzugeben, wählen Sie das erste Datum aus und ziehen Sie den Cursor auf das entsprechende Feld.

Wenn Sie ältere Dateien automatisch löschen möchten, anstatt jedes Mal eine Suchabfrage durchzuführen, müssen Sie eine Batchdatei oder PowerShell erstellen.


Methode 2: Löschen von Dateien, die älter als N Tage sind, mithilfe der Eingabeaufforderung

Das ForFiles Konsolentool (in Windows 7, Windows 8, Windows 8.1 und Windows 10) wählt eine Datei oder einen Satz von Dateien aus und führt einen Befehl für diese Datei oder einen Satz von Dateien aus.

 Forfiles-Hilfe - Befehlszeilenschalter / P - Gibt den Pfad an, zu dem die Suche gestartet werden soll. Der Standardordner ist das aktuelle Arbeitsverzeichnis (.). / S - Weist Forfiles an, in Unterverzeichnisse zurückzukehren. Wie "DIR / S". / D - Wählen Sie Dateien mit einem Datum der letzten Änderung aus. Zum Beispiel bedeutet -365 vor über einem Jahr, -30 vor einem Monat. / C "Befehl" - Gibt den Befehl an, der für jede Datei ausgeführt werden soll. Befehlszeichenfolgen sollten in doppelte Anführungszeichen gesetzt werden. Der Standardbefehl lautet "cmd / c echo @file". Die folgenden Variablen können in der Befehlszeichenfolge verwendet werden: @file - Gibt den Namen der Datei zurück. @fname - gibt den Dateinamen ohne Erweiterung zurück. @ext - gibt nur die Erweiterung der Datei zurück. @path - Gibt den vollständigen Pfad der Datei zurück. @relpath - gibt den relativen Pfad der Datei zurück. @isdir - gibt "TRUE" zurück, wenn ein Dateityp ein Verzeichnis ist, und "FALSE" für Dateien. @fsize - Gibt die Größe der Datei in Bytes zurück. @fdate - Gibt das Datum der letzten Änderung der Datei zurück. @ftime - Gibt die zuletzt geänderte Zeit der Datei zurück. 

FORFILES /? um die gesamte Liste der von diesem Tool unterstützten FORFILES /? in der Eingabeaufforderung.

Öffnen Sie zum Suchen und Löschen von Dateien, die älter als eine bestimmte Anzahl von Tagen sind, mit ForFiles ein Eingabeaufforderungsfenster und geben Sie einen der folgenden Befehle ein:

 ForFiles / p "D: \ Meine Skripte" / s / d -30 / c "cmd / c del @path" 

-oder-

 ForFiles / p "D: \ Meine Skripte" / s / d -30 / c "cmd / c del @file" 

Oben wird davon ausgegangen, dass der Ordnerpfad D:\My Scripts lautet und Sie Dateien löschen möchten, die älter als 30 Tage sind. Passen Sie den Ordnerpfad und die Anzahl der Tage an Ihre Bedürfnisse an.

Wenn der Befehl erfolgreich ist, wird keine Ausgabemeldung angezeigt. Wenn keine Dateien den angegebenen Kriterien entsprechen, wird die Meldung FEHLER angezeigt: Keine Dateien mit den angegebenen Suchkriterien gefunden .

Zusätzlicher Tipp: Um vor dem Löschen von Dateien einen Probelauf durchzuführen und zu überprüfen, welche Dateien für die angegebenen Kriterien betroffen sind, ersetzen Sie den Befehl del wie folgt durch echo :

$config[ads_text6] not found
 ForFiles / p "D: \ Meine Skripte" / s / d -30 / c "cmd / c echo @path" 

-oder-

 ForFiles / p "D: \ Meine Skripte" / s / d -30 / c "cmd / c echo @file" 

Optional können Sie mit dem obigen Befehl eine Batchdatei erstellen. Oder um den Befehl automatisch in bestimmten Intervallen mit dem Taskplaner auszuführen.

Führen Sie den Befehl automatisch mit dem Taskplaner aus

  1. Starten Sie den Taskplaner.
  2. Klicken Sie im Taskplaner auf "Taskplanerbibliothek".
  3. Klicken Sie im rechten Bereich auf den Link „Aufgabe erstellen“.
  4. Wählen Sie im Dialogfeld "Aufgabe erstellen" die Registerkarte "Allgemein".
  5. Erwähnen Sie den Namen der Aufgabe und sagen Sie "Ältere Dateien in Eigene Dateien löschen".
  6. Klicken Sie auf die Registerkarte Trigger und dann auf Neu.
  7. Wählen Sie in der Dropdown-Liste unter dem Dropdown-Listenfeld "Aufgabe starten" die Option "Nach Zeitplan" aus.
  8. Sie können die Aufgabe täglich, wöchentlich oder monatlich ausführen. Wenn Sie wöchentlich auswählen, wählen Sie die Wochentage aus, an denen die Aufgabe ausgelöst werden soll.
  9. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche OK.
  10. Klicken Sie auf die Registerkarte "Aktionen" und dann auf die Schaltfläche "Neu ...".
  11. Geben Sie im Fenster "Neue Aktion" Folgendes ein:
     Aktion: Starten Sie ein Programm. Programm / Skript: C: \ Windows \ System32 \ ForFiles.exe Argumente hinzufügen (optional): / p "% Benutzerprofil% \ Dokumente" / s / d -30 / c "cmd / c del @file" 

  12. OK klicken.

Es wird eine neue Aufgabe erstellt, die beim Ausführen Dateien in Ihrem Ordner " Documents " löscht, die in den letzten 30 Tagen nicht geändert wurden.


Methode 3: Löschen Sie Dateien, die älter als N Tage sind, mit Script

Die Benutzer des Spiceworks-Forums verfügen über VBScripts, mit denen Dateien, die älter als N Tage sind, in einem angegebenen Ordnerpfad rekursiv gelöscht werden können. Hier ist ein einfaches Skript:

 On Error Resume Next Set oFileSys = WScript.CreateObject ("Scripting.FileSystemObject") sRoot = "C: \ Pfad zu alten Dateien" 'Pfadstamm, um heute nach Dateien zu suchen = Datum nMaxFileAge = 3' Dateien älter als diese (in Tagen) wird gelöscht ) Wenn DateDiff ("d", dFileCreated, today)> nMaxFileAge, dann file.Delete (True) End If Next Für jeden Ordner in aSubFolders DeleteFiles (folder.Path) Next End-Funktion 

Quelle: Alte Dateien und leere Unterordner löschen - Script Center - Spiceworks

WICHTIG! Das obige Skript berücksichtigt die Eigenschaft "Erstellungsdatum" von Elementen anstelle von "Datum der letzten Änderung". Wenn Sie Dateien löschen möchten, die in den letzten N Tagen nicht geändert wurden, ändern Sie die folgende Zeile im Skript:

 dFileCreated = FormatDateTime (file.DateCreated, "2") 

zu

 dFileCreated = FormatDateTime (file.DateLastModified, "2") 

Es löscht Dateien, die älter als 3 Tage sind. Alles, was Sie tun müssen, ist, die Parameter für den .vbs und das maximale Alter der Datei wie im Skript erforderlich zu ändern, sie mit der Erweiterung .vbs speichern und auszuführen. Beachten Sie, dass das Skript rekursiv für den angegebenen Ordner und die angegebenen Unterordner ausgeführt wird.

Hier ist ein weiteres Skript, das Dateien löscht, die älter als N Tage sind, und leere Unterordner automatisch rekursiv löscht. Siehe Löschen von Dateien, die älter als das Höchstalter sind (in Tagen) - Script Center - Spiceworks

VERBINDUNG: So finden und löschen Sie leere Ordner schnell in Windows


Methode 4: Löschen Sie Dateien, die älter als 'n' Tage sind, mit PowerShell

Die dritte Option ist die Verwendung von PowerShell, das über ein nützliches Cmdlet verfügt, um alte Dateien zu suchen und zu löschen.

Starten Sie PowerShell ( powershell.exe) und geben Sie den folgenden Befehl ein:

 Get-ChildItem -Path [Ordnerpfad] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force 

Beispiel:

 Get-ChildItem -Path "D: \ Reports" -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force 

Verwenden Sie die folgende Syntax, um Pfade zu verwenden, die Umgebungsvariablen wie %userprofile%\documents :

$config[ads_text6] not found
 Get-ChildItem -Path "$ env: Benutzerprofil \ Dokumente" -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force 

(Hinweis: Der Ordnername im Beispiel ist der Ordner " Documents " Ihres Benutzerprofils. Ändern Sie den Ordnernamen und den Pfad entsprechend Ihren Anforderungen.)

Da wir den Parameter -File, funktioniert er nur für Dateien. Daher wird verhindert, dass Unterordner, die in den letzten n Tagen nicht geschrieben wurden, gelöscht werden.

Der obige Befehl besteht aus drei Teilen:

  1. Das Cmdlet Get-ChildItem ruft die Liste der Dateien in Ihrem Ordner "Dokumente" ab.
  2. Anschließend wird die Ausgabe an das Cmdlet Where-Object weitergeleitet, sodass die Filterung durchgeführt wird. Dabei werden nur Dateien ausgewählt, die in den letzten x Tagen (in diesem Beispiel 30 days ) nicht geändert wurden.
  3. Schließlich leiten wir die Ausgabe an das Cmdlet Remove-Item weiter, das wiederum die älteren Dateien löscht, die von den beiden vorherigen Cmdlets zurückgegeben wurden.

Tipp 1: Übereinstimmende Dateien auflisten, nicht löschen?

Um die übereinstimmenden Dateien und Ordner aufzulisten, ohne sie zu löschen, lassen Sie | Remove-Item Schalter zum | Remove-Item .

 Get-ChildItem -Path [Ordnerpfad] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} 

Tipp 2: Unterdrücken Sie Fehler beim Löschen von Elementen

-ErrorAction SilentlyContinue Parameter -ErrorAction SilentlyContinue hinzu, um zu verhindern, dass Fehlermeldungen (beim Zugriff auf oder Löschen von Elementen) in der Konsole -ErrorAction SilentlyContinue werden.

 Get-ChildItem -Path [Ordnerpfad] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -ErrorAction SilentlyContinue -Force 

Löschen Sie alte Dateien sowie Ordner

Beachten Sie, dass mit den obigen Befehlen nur die alten Dateien gelöscht werden, nicht jedoch die Unterordner, die in den letzten x Tagen nicht geschrieben wurden. Um alte Ordner zu entfernen, -File Argument -File in den zuvor erläuterten Befehlen.

Beispiel:

 Get-ChildItem -Path "$ env: Benutzerprofil \ Dokumente" -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force 

(Siehe: Cmdlet-Dokumentation Get-ChildItem auf der Microsoft-Website.)

Wichtig: Der Parameter -Recurse weist PowerShell an, Dateien rekursiv -Recurse (in Unterverzeichnissen). Um zu verhindern, dass in Unterordnern nach Dateien gesucht wird, entfernen Sie die Option -Recurse damit nur der aktuelle Ordner verarbeitet wird.

Ähnlicher Artikel