druide83
Goto Top

Leere Verzeichnisse mit mehreren Unterordnern löschen?

Morgen zusammen,

wie im Titel schon beschrieben, möchte ich ein Verzeichnis nach leeren Verzeichnissen durchsuchen lassen und diese sollen dann gelöscht werden.

Ich habe aus dem Netz folgenden PS Code:

Function Remove-EmptyFolders() {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true,HelpMessage="Path including subfolders to analyze for empty folders")]
$Path
)

Function checkEmpty([String] $Path) {
if ((Get-ChildItem -Force -LiteralPath "$Path") -eq $null) {
return $true;
} else {
return $false;
}
}

if (checkEmpty "$Path") {
(Get-Item -Force -LiteralPath "$Path").Delete()
} else {
$Folders = Get-ChildItem -Force -LiteralPath "$Path"

foreach ($Folder in $Folders) {
Remove-EmptyFolders "$Path/$Folder"
}
}
}

Remove-EmptyFolders "Der Pfad der durchsucht werden soll"

Dieser funktioniert hervorragend, aber löscht leider keine leeren Unterverzeichnisse.
Der part

foreach ($Folder in $Folders) {
Remove-EmptyFolders "$Path/$Folder"
}

sollte dies doch eigentlich erledigen?

Würde mich sehr über Hilfe freuen.

Content-Key: 265302

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

Printed on: April 26, 2024 at 23:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Mar 05, 2015 updated at 09:11:00 (UTC)
Goto Top
Moin,

falls Dir die Scriptsprache egal ist, gibt es eine elegante Lösung mit dem Unix-Utility find, daß es auch für Windows gibt:

find $pfad -depth -type d -empty  -exec rmdir -v {} \; 

lks
Member: Druide83
Druide83 Mar 05, 2015 at 09:12:26 (UTC)
Goto Top
Danke für den Tip, sollte aber auch mit Powershell gehen, da das nur ein Part eines PS Skript ist.
Member: colinardo
Solution colinardo Mar 05, 2015 updated at 09:53:01 (UTC)
Goto Top
Moin zusammen,
$folder = 'C:\temp'  
gci $folder -Recurse | ?{$_.PSIsContainer -and $_.GetDirectories().Count -eq 0 -and $_.GetFiles().Count -eq 0} | remove-item -Force -EA SilentlyContinue
Grüße Uwe
Member: Druide83
Druide83 Mar 05, 2015 at 09:52:51 (UTC)
Goto Top
Vielen Dank colinardo, das funktioniert wunderbar.