benjamin66

Ordner umbenennen mit PowerShell

Hallo Leute,

ich habs rum, ich gebe auf. Hab jetzt Stunden damit zugebracht es selber hin zu bekommen und schaffe es einfach nicht ...
Ich brauche Eure Hilfe!

Ich denke es ist nur ein kleiner Einzeiler, aber ich bin zu doof ...

Auf meiner Festplatte befinden sich sehr viele Verzeichnisse nach dem Muster : "Ein Text 01-01-2020"
Also der Text ist oft ein Wort, aber auch manchmal Mehrere ... dann ein Datum im ( falschen ) Format Tag-Monat-Jahr
Das wollte ich "schnell" mal mit nem Skript lösen ...

Der letzte Ansatz war : Get-ChildItem w:\Test -Recurse | Rename-Item -NewName {$_.Name -replace '(.+)(\d{2})-(\d{2})-(\d{4})','($1)\s-($4)-($3)-($2)'} ;

... aber wieder nur ne Fehlermeldung *kotz*

Bitte ... helft mir ...

Also aus "Alpha 12-12-2020" soll "Alpha 2020-12-12" werden oder "Alpha Beta 01-07-2020" zu "Alpha Beta 2020-07-01"

BTW : W:\Test ist nur ein Sandkasten um keinen Schaden anzurichten ... letztendlich soll es auf ein ganzes Drive mit tiefer Ordnerstruktur angewendet werden ...
Andere Verzeichnisse welche diesem Muster nicht entsprechen sollten unangetastet bleiben ...

Ach ja , die letzte Fehlermeldung war dann : Rename-Item : Das angegebene Ziel kann nicht umbenannt werden, da es einen Pfad- oder Gerätenamen darstellt. Hääää ?!?!?


Ich hoffe es erbarmt sich jemand meiner

LG Benjamin


TAUSEND DANK !!!!!!!! DANKE DANKE DANKE : - )))) *vollhappyist*
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 600861

Url: https://administrator.de/forum/ordner-umbenennen-mit-powershell-600861.html

Ausgedruckt am: 19.06.2025 um 06:06 Uhr

SeaStorm
SeaStorm 31.08.2020 aktualisiert um 23:31:22 Uhr
Goto Top
Hi

nah dran face-smile Also so funktioniert das eigentlich schon mal grob
Get-ChildItem -Path $folder -Directory -Recurse | Rename-Item -NewName {$_.Name -replace '(.+)(\d{2})-(\d{2})-(\d{4})','$1 $4-$3-$2' }  

Feintuning mit Leerzeichen zwischen Text und Datum vielelicht noch, aber das bekommst du sicher selbst hin

Andere Verzeichnisse welche diesem Muster nicht entsprechen sollten unangetastet bleiben
Dann musst du das vor dem Rename filtern.

.... -recurse | ? {$_.Name -match "(.+)(\d{2})-(\d{2})-(\d{4})" } | Rename-Item ....  
mbehrens
mbehrens 31.08.2020 um 23:34:38 Uhr
Goto Top
-replace '^(.*)(\d{2})-(\d{2})-(\d{4})', '${1}${4}-${3}-${2}'  

könnte ein Ansatz sein.
145033
Lösung 145033 01.09.2020 aktualisiert um 00:18:25 Uhr
Goto Top
ls 'w:\test' -Dir -Recurse | sort {$_.Fullname.length} -Desc | ?{$_.Name -match '^(.*)(\d{2})-(\d{2})-(\d{4})'} | rename-item -NewName {"$($matches[1])$($matches[4])-$($matches[3])-$($matches[2])"} -verbose  
https://tio.run/##VY69DoJAEIR7n2JzIZEzWcKdJNrZGEsKW0XDz0aIB5i7Qwvk2fEkFl ...