silent-daniel
Goto Top

Powershell Unterordner löschen spezielle Vorgaben

Hallo,

ich habe folgende Aufgabe:

Netzlaufwerk:
O:\H_Human_Resources\M_MitarbeiterInnen_aktiv

oder am Server:
D:\Daten\H_Human_Resources\M_MitarbeiterInnen_aktiv

Darin sind Ordner mit den Namen der Mitarbeitern:

Mustermann_Max
Musterfrau_Petra
Silent_Daniel

Darin sind wieder Ordner:
Aus- und Weiterbildung
Bewerbungsunterlagen
Bewerbungsunterlagen
...

Und jeweils mit der Struktur:
M_Mustermann_Max_10001
M_Musterfrau_Petra_10060
S_Silent_Daniel_20158
...

Die 3x _ sind immer da, also kann man nach diesen filtern?
Habe auch eine csv mit den Mitarbeitern (Vorname, Nachname, Nummer)

Nur in diesen (Struktur)Ordnern sollen alle Unterordner gelöscht werden, die leer sind.
Die anderen sollen nicht angegriffen werden.
Fleißaufgabe, gelöschte Ordner in eine Log Datei schreiben.

grün der gesuchte Ordner, rot die leeren, die gelöscht werden sollen.
screenshot 2024-02-14 153235

Kann mir da jemand weiterhelfen?

gruß sd

Content-Key: 63119222523

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

Printed on: April 27, 2024 at 15:04 o'clock

Member: Kraemer
Kraemer Feb 14, 2024 at 14:42:46 (UTC)
Goto Top
Moin,

Zitat von @silent-daniel:

Die 3x _ sind immer da, also kann man nach diesen filtern?

ja, mit regex z.B.: https://regex101.com/r/2RLuRN/2

Gruß
Mitglied: 11078840001
Solution 11078840001 Feb 14, 2024 updated at 15:27:19 (UTC)
Goto Top
Das Wörtchen "Speziell" scheint wohl in letzter Zeit in aller Munde zu sein face-big-smile

Start-Transcript 'D:\delete.log'  
foreach($folder in Get-ChildItem 'O:\H_Human_Resources\M_MitarbeiterInnen_aktiv\*\*' -Directory | ? Name -match '^\w_\w+_\w+_\d+$'){  
    Get-ChildItem $folder.Fullname -Directory -Recurse | sort {$_.Fullname.Length} -Descending | ?{!$_.GetFilesystemInfos()} | remove-item -Force -recurse -Verbose
}
Stop-Transcript
Member: silent-daniel
silent-daniel Feb 14, 2024 updated at 18:59:58 (UTC)
Goto Top
Hallo,

Sorry, ja funktioniert doch, habe irgendwas nicht kopiert.

gruß sd