Wir haben Ihnen bereits gezeigt, wie flexibel die Linux-Shell sein kann Das heißt aber nicht, dass Windows weiter hinten liegt. 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 mit Get-Date (dem aktuellen Datum) zu vergleichen und 5 Tage zu subtrahieren.
- Dies lässt uns dann eine Sammlung von Objekten übrig, die vor mehr als 5 Tagen erstellt wurden und die wir an Remove-Item übergeben.
Pro Tip
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
Obwohl wir empfehlen, eine der PowerShell-Methoden zu verwenden, können Sie dies auch über die Eingabeaufforderung tun, ohne auf die Details einzugehen.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Pro Tip
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"