ich muss Excel- und Worddateien löschen, die älter sind, als 1.01.2012.
Daher habe ich testweise zunächst mal ein Script genutzt, welches nach diesen Dateien sucht.
Das funktionierte sehr gut...
Ds Script muss aber jetzt angepaßt werden, damit die Dateien auch gelöscht werden können.
Ich habe den Code nun durch den Zusatz "remove-item -Force -whatif" erweitert, um die Dateien löschen zu können. Hier bin ich aber nicht sicher, ob der Code so korrekt ist.
Hier mal der bestehende Code:
Add-Type -A System.IO.Compression Add-Type -A System.IO.Compression.FileSystem $folder = 'S:\' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Excel-Dokumente mit Änderungsdatum älter als $date suchen Get-ChildItem $folder -File -Filter '*.xls?' -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Select-Object -ExpandProperty Fullname | remove-item -Force -whatif # Nur Word-Dokumente mit Änderungsdatum älter als $date suchen Get-ChildItem $folder -File -Filter '*.doc?' -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Select-Object -ExpandProperty Fullname | remove-item -Force -whatif
Würde durch den Zusatz "-whatif" zunächst mal nur ein Testlauf gemacht? So habe ich es jedenfalls verstanden.
Und eine weitere Frage wäre, wie ich die Eingabe machen muss, wenn ich im Bereich der Word-Dokumente nicht nur nach ".doc" Dateien suchen möchte, sondern zusätzlich auch nach ".bak" Dateien.
Hierzu hätte ich folgenden Code-Vorschlag (hier mal nur die Word-Dokumente):
Add-Type -A System.IO.Compression Add-Type -A System.IO.Compression.FileSystem $folder = 'S:\' $filter = '*.doc?, *.bak?' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Word-Dokumente mit Änderungsdatum älter als $date suchen Get-ChildItem $folder -File $_ -Filter $filter | -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Select-Object -ExpandProperty Fullname | remove-item -Force -whatif
In diesem Code habe ich oben zusätzlich "$filter" eingesetzt und im Code weiter unten dann den Zusatz "$_ -Filter $filter".
Würde mich über Eure Hilfe sehr freuen.
Danke und Grüße,
BN
Dieser Beitrag wurde von BN_2022 bearbeitet: 04. Februar 2022 - 10:55