Startseite » wie man » Löschen von Dateien, die älter als X Tage sind, unter Windows

    Löschen von Dateien, die älter als X Tage sind, unter Windows

    Wir haben Ihnen bereits gezeigt, wie flexibel die Linux-Shell sein kann, aber Windows ist nicht weiter dahinter. Hier sind zwei Techniken, die Sie je nach Shell-Präferenz verwenden können, cmd oder PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Gegenstand entfernen

    PowerShell 2

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Gegenstand entfernen

    Erläuterung

    • Zuerst erhalten wir FileInfo- und DirectoryInfo-Objekte im Pfad C: \ Backups.
    • FileInfo- und DirectoryInfo-Objekte enthalten beide eine CreationTime-Eigenschaft, sodass wir die Sammlung damit filtern können.
    • Der Operator -lt (kleiner als) wird dann verwendet, um die CreationTime-Eigenschaft der Objekte zu vergleichen, wobei Get-Date (das aktuelle Datum) 5 Tage abzieht.
    • Es verbleibt dann eine Sammlung von Objekten, die vor mehr als 5 Tagen erstellt wurden. Diese werden an Remove-Item übergeben.

    Profi-Tipp

    Um zu sehen, was entfernt wird, können Sie den Parameter -WhatIf verwenden:

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remove-Item -WhatIf

    Eingabeaufforderung

    Es wird zwar empfohlen, eine der PowerShell-Methoden zu verwenden, ohne auf Details zu verzichten, können Sie dies jedoch auch über die Eingabeaufforderung tun.

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"

    Profi-Tipp

    Um zu sehen, welche Dateien gelöscht werden, können Sie Echo verwenden.

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"