pixel0815
Goto Top

Powershell - Wenn ein Ordner leer ist, diesen auch löschen hinzufügen?

Hallo zusammen,

das Skript läuft gut und ich dachte kurz darüber Nach ob es möglich ist ohne großen Aufwand leere Ordner auch gleich zu entfernen?

$Now = Get-Date
$Days = "7" #----- definiere tage ----#  
$Targetfolder = "C:\Bildertest\" #----- definiere folder ----#  
$Extension = "*.*" #----- definiere dateitypen ----#  
$Lastwrite = $Now.AddDays(-$Days)

#----- dateien basierend dem lastwrite filter finden und dann löschen---#
$Files = Get-Childitem $Targetfolder -include $Extension -Recurse | where {$_.LastwriteTime -le "$Lastwrite"}  

foreach ($File in $Files)
{
if ($File -ne $Null)
{
write-host "Lösche Datei $File" backgroundcolor "DarkRed"  
Remove-item $File.Fullname | out-null
}
else
{
write-host "Nix zu holen" -forgroundcolor "Green"  
}
}

Gruß
Heiko

Content-Key: 273021

Url: https://administrator.de/contentid/273021

Printed on: April 20, 2024 at 02:04 o'clock

Member: colinardo
Solution colinardo May 27, 2015 updated at 12:21:29 (UTC)
Goto Top
Hallo Heiko,
da habe ich dir eine kleine Funktion die das Rekursiv für eine Ordnerstruktur erledigt:
function Remove-EmptyFolders([string]$folder){
    gci $folder -Recurse | ?{$_.PSIsContainer -and !(gci $_.Fullname -Recurse | ?{!$_.PSIsContainer})} | remove-item -Force -Recurse -EA SilentlyContinue
}
Aufrufen kannst du sie so:
Remove-EmptyFolders "C:\Ordner"
Sie durchläuft rekursiv alle Unterordner und entfernt dabei leere Ordner.

Grüße Uwe
Member: pixel0815
pixel0815 May 27, 2015 at 12:21:50 (UTC)
Goto Top
Hallo Uwe,

Genau sowas hab ich gesucht :o)
Tausend dank!

Gruß
Heiko