Mit Powershell Dateien löschen
Hallo,
folgendes Problem:
Aus einem Verzeichnis sollen alle Dateien, welche in Unterordner liegen gelöscht werden,
die Älter als 30 Tage sind.
Bleiben in einem Ordner keine Dateien mehr übrig, dann soll der gesamte Ordner gelöscht werden.
Bestimmte Ordner müssen komplett ausgeschlossen werden.
Da ich keine Ahnung von Powershell habe, habe ich aus dem Forum einige ähnliche Skripte zu einem Skript zusammengefasst.
Leider funktioniert das nicht wirklich.
Es werden nur die Dateien gelöscht.
Die Ordner bleiben stehen.
Hier das Skript:
get-childitem "C:\temp\delete" -recurse | where {$_.lastwritetime -lt $DatumVor30Tagen -and -not $_.psiscontainer -and $_.mode -notmatch "NichtLoeschen1"} | where {$_.Name -notmatch "NichtLoeschen1|NichtLoeschen2"} |% {remove-item $_.fullname -force -verbose -whatif }
oder auch das:
Get-ChildItem "C:\temp\delete"| where {$_.lastwritetime -lt $DatumVor30Tagen} | where {$_.Name -notmatch "NichtLoeschen1|NichtLoeschen2" } | Foreach { Get-ChildItem $_.pspath | Remove-Item -recurse -whatif }
Beide Version funktionieren nur so Halb.
Für Eure Hilfe wäre ich sehr dankbar.
folgendes Problem:
Aus einem Verzeichnis sollen alle Dateien, welche in Unterordner liegen gelöscht werden,
die Älter als 30 Tage sind.
Bleiben in einem Ordner keine Dateien mehr übrig, dann soll der gesamte Ordner gelöscht werden.
Bestimmte Ordner müssen komplett ausgeschlossen werden.
Da ich keine Ahnung von Powershell habe, habe ich aus dem Forum einige ähnliche Skripte zu einem Skript zusammengefasst.
Leider funktioniert das nicht wirklich.
Es werden nur die Dateien gelöscht.
Die Ordner bleiben stehen.
Hier das Skript:
get-childitem "C:\temp\delete" -recurse | where {$_.lastwritetime -lt $DatumVor30Tagen -and -not $_.psiscontainer -and $_.mode -notmatch "NichtLoeschen1"} | where {$_.Name -notmatch "NichtLoeschen1|NichtLoeschen2"} |% {remove-item $_.fullname -force -verbose -whatif }
oder auch das:
Get-ChildItem "C:\temp\delete"| where {$_.lastwritetime -lt $DatumVor30Tagen} | where {$_.Name -notmatch "NichtLoeschen1|NichtLoeschen2" } | Foreach { Get-ChildItem $_.pspath | Remove-Item -recurse -whatif }
Beide Version funktionieren nur so Halb.
Für Eure Hilfe wäre ich sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 196996
Url: https://administrator.de/contentid/196996
Ausgedruckt am: 16.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
sicher hast Du schon ausgiebig die Suchfunktion genutzt? Einmal die hier im Forum und auch bei Herrn Google?
Dateien Löschen älter 30 Tage mit Powershell
sicher hast Du schon ausgiebig die Suchfunktion genutzt? Einmal die hier im Forum und auch bei Herrn Google?
Dateien Löschen älter 30 Tage mit Powershell