• You are here:
  • Home »
  • Microsoft »

Power Shell Skript zum Löschen bestimmten Ordnern mit Inhalt die älter als N Tage sind

Ein leistungsfähiges PowerShell-Skript kann die effiziente Automatisierung von Aufgaben in der Serverwartung gewährleisten. Hier präsentiere ich ein einfaches Skript, das darauf abzielt, Ordner und deren Inhalte auf einem bestimmten Laufwerk zu löschen. Das Skript zeichnet sich durch die gezielte Auswahl von Ordnern aus, die älter als eine bestimmte Anzahl von Tagen sind und einen spezifischen Namensanfang aufweisen.

dir "r:\" | ?{$_.lastwritetime -lt ((Get-Date).AddDays(-30)) -and $_.PSIsContainer -and $_.Name -like 'IMG*'} | %{Remove-Item $_.FullName -force -recurse}

Hier sind die Schlüsselaspekte des Skripts:

1. Durchsuchen des Laufwerks:
Das Skript verwendet das `dir`-Cmdlet, um das angegebene Laufwerk (hier als Beispiel R:\) zu durchsuchen.

2. Filtern nach bestimmten Kriterien:
Das `?{$_.lastwritetime -lt ((Get-Date).AddDays(-30)) -and $_.PSIsContainer -and $_.Name -like ‚IMG*‘}`-Teil des Skripts führt einen Filterprozess durch. Es wählt nur Ordner aus, die älter als 30 Tage sind (`-lt` steht für „kleiner als“), tatsächlich Ordner sind (`$_PSIsContainer`), und deren Name mit ‚IMG*‘ beginnt (`-like` wird mit einer Wildcard verwendet).

3. Löschen der ausgewählten Ordner:
Das `|%{Remove-Item $_.FullName -force -recurse}`-Teil des Skripts verwendet das `Remove-Item`-Cmdlet, um die ausgewählten Ordner und deren Inhalte zu löschen. Die Optionen `-force` und `-recurse` ermöglichen das Löschen ohne Rückfrage und das rekursive Löschen aller Unterordner und Dateien.

Es ist wichtig zu beachten, dass dieses Skript im Hintergrund arbeitet, ohne Abfrage und ohne die Erstellung einer Log-Datei. Daher sollte es mit Vorsicht verwendet werden, um unerwünschte Datenverluste zu vermeiden. Bei Anpassungen des Skripts sollte darauf geachtet werden, die gewünschten Ordner und Dateien genau zu identifizieren und sicherzustellen, dass die Auswahl den beabsichtigten Löschvorgang widerspiegelt.