2017-03-08 6 views
0

Ich bin neu bei PowerShell und weiß nicht so viel darüber.Powershell löschen Ordner, wenn alle Dateien älter als x Tage

Ich suche nach einer Möglichkeit, einen Ordner und alle Unterordner zu löschen, wenn alle Dateien älter als x Tage sind. Ich habe einen Code, um alle Dateien in einem Ordner und allen Unterordnern zu löschen, aber ich weiß nicht, wie ich das richtig ändern kann.

$Now = Get-Date 

$Days = "30" 

$TargetFolder = "C:\temp" 
$Extension = "*.*" 
$LastWrite = $Now.AddDays(-$Days) 

$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {($_.CreationTime -le "$LastWrite") -and ($_.LastWriteTime -le "$LastWrite")} 


foreach ($File in $Files) 
    { 
    if ($File -ne $NULL) 
     { 
     write-host "Deleting File $File" -ForegroundColor "Red" 
     Remove-Item $Location.FullName | out-Null 
     } 
    else 
     { 
     Write-Host "No more files to delete!" -foregroundcolor "Green" 
     } 
    } 
+0

vor 30 Tagen erstellt oder geändert? – 4c74356b41

+0

Beide müssen respektiert werden, denn wenn Sie eine Datei im Jahr 2015 heruntergeladen haben, ist das ModifieDate 2015 und Sie haben es am 22/22/02 nach "C: \ temp" verschoben als das CreationDate ist, dass ich es nicht entfernen will. –

+0

Kopieren einer Datei ändert nicht das Erstellungsdatum oder die Schreibzeit, nicht sicher, wie Sie das erreichen möchten – 4c74356b41

Antwort

0

Aufzählen alle Ordner und ihnen längsten Weg zuerst sortieren, so dass Sie die Verzeichnisse von unten nach oben zu verarbeiten:

Get-ChildItem $TargetFolder -Recurse -Directory | 
    Select-Object -Expand FullName | 
    Sort-Object Length -Desc 

Filter die Liste für Verzeichnisse, die als x keine Datei haben oder neue Ordner Tage in ihnen:

... | Where-Object { 
    -not $(Get-ChildItem $_ -Recurse | Where-Object { 
     $_.Creationtime -ge $LastWrite -or 
     $_.LastWriteTime -ge $LastWrite 
    }) 
} 

Dann entfernen sie die resultierenden Ordner:

... | Remove-Item -Recurse -Force 
+0

Wow, die aussieht, thx greate :) –

Verwandte Themen