Frage zu Powershell Script

Legolas

Lieutenant
Registriert
Sep. 2018
Beiträge
624
Hallo zusammen,

vielleicht hat ja jemand einen Tipp. Ich will mit diesem Script Unterverzeichnisse und Dateien löschen die älter als 14 Tage sind:

# set folder path
$dump_path = "C:\Temp"

# set min age of files
$max_days = "-14"

# get the current date
$curr_date = Get-Date

# determine how far back we go based on current date
$del_date = $curr_date.AddDays($max_days)

# delete the files
Get-ChildItem -Path $dump_path -Recurse | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item

Wenn ich das ausführe dann fragt mich das Script das der Recurse Parameter nicht gesetzt ist und das da Verzeichnisse mit Dateien drin existieren. Was mache ich denn da falsch.

Danke
SW
 
Probier mal am Ende Remove-Item -Recurse - das ermöglicht Dir auch ältere Verzeichnisse rekursiv zu löschen (wenn das das ist was Du willst - handle with care).
 
Ohne es jetzt testen zu können:

Ich vermute es sollte klappen, wenn du ... | Remove-Item -Recurse -Force verwendest.
 
Wie bereits von @phasendreher angemerkt, musst du aber aufpassen. Wahrscheinlch löscht du so den kompletten Inhalt von Ordern, obwohl die Dateien innerhalb des Ordners nich älter als 14 tage sind.
 
TopperHarley87 schrieb:
löscht du so den kompletten Inhalt von Ordern, obwohl die Dateien innerhalb des Ordners nich älter als 14 tage sind
Genau, daher meine Warnung oben.
Falls Du auf Nummer sicher gehen willst, lösche im ersten Schritt nur Dateien, welche das Alterskriterium erfüllen, und im zweiten Schritt alle leeren Verzeichnisse mit altem Zeitstempel unterhalb des betrachteten Verzeichnisses (dann aber eher ohne -Force).
 
Danke für den Hinweis aber das passt schon. Das ist ein Ordner in dem Logfiles abgespeichert werden und Ordner sowie Logs die älter als 14 Tage alst sind werden nicht mehr benötigt. Und selbst wenn gibts ja noch ein Backup
 
Zurück
Oben