Hunderte Ordner automatisch umbenennen und enthaltene Jahreszahl in Klammern setzen
Hallo,
ich habe mal eine Frage, ob es per,batch oder Shell möglich ist viele Ordner automatisch umzubenennen.
Der Aufbau ist folgendermaßen:
Ordner 1582
Ordner 1999
etc.
Die Ordner haben unterschiedliche Namen, haben aber immer eine Jahreszahl am Ende oder in der Mitte.
Jetzt hätte ich gerne, dass die Jahreszahl immer in Klammern steht.
Ist das möglich?
Danke im Voraus
ich habe mal eine Frage, ob es per,batch oder Shell möglich ist viele Ordner automatisch umzubenennen.
Der Aufbau ist folgendermaßen:
Ordner 1582
Ordner 1999
etc.
Die Ordner haben unterschiedliche Namen, haben aber immer eine Jahreszahl am Ende oder in der Mitte.
Jetzt hätte ich gerne, dass die Jahreszahl immer in Klammern steht.
Ist das möglich?
Danke im Voraus
Please also mark the comments that contributed to the solution of the article
Content-Key: 251722
Url: https://administrator.de/contentid/251722
Printed on: April 26, 2024 at 08:04 o'clock
8 Comments
Latest comment
Hallo umpalumpa,
z.B. mit Powershell ein Einzeiler ...
Noch zur Info: Die gängigen Rename-Programme wie
können das mit Regular-Expressions auch out-of-the-box
Grüße Uwe
z.B. mit Powershell ein Einzeiler ...
dir 'C:\DeinRootOrdner' -recurse | ?{$_.PSIsContainer -and $_.Name -match '\d{4}'} | rename-item -NewName {$_.Name -replace '(\d{4})','($1)'}
Noch zur Info: Die gängigen Rename-Programme wie
können das mit Regular-Expressions auch out-of-the-box
Grüße Uwe
Zitat von @evolution:.
Am Ende soll nicht nur die Jahreszahl übrig bleiben, sondern nur in Klammern gesetzt werden:
genau das gewünschte macht meine Zeile aber !! Du hast es bestimmt noch nicht ausprobiert Am Ende soll nicht nur die Jahreszahl übrig bleiben, sondern nur in Klammern gesetzt werden:
Am liebsten wäre mir, die Jahreszahl irgendwie zu extrahieren (egal wo sie steht) und dann den Ordnernamen neu
zusammenzusetzen. Damit man die Zahl immer an den Anfang oder das Ende stellen kann.
Auch kein Problem, geht damit ebenso...zusammenzusetzen. Damit man die Zahl immer an den Anfang oder das Ende stellen kann.
z.B. die Jahreszahl immer ans Ende setzen:
dir 'C:\DeinRootOrdner' -recurse | ?{$_.PSIsContainer -and $_.Name -match '\d{4}'} | rename-item -NewName {$_.Name -replace '(.*?)(\d{4})(.*)','$1$3($2)'}
Und voila hast du alle Möglichkeiten
Zitat von @evolution:
Also nochmal vielen Dank, aber ich bekomme immer eine Fehlermeldung:
Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "recruse" entspricht
Kopiere die Zeile mal richtig, das heißt -recurse ... nicht recruse . Und bedeutet alle Unterordner rekursiv durchlaufen. Wenn du das nicht benötigst kannst du den Parameter weglassen.Also nochmal vielen Dank, aber ich bekomme immer eine Fehlermeldung:
Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen "recruse" entspricht
Zitat von @evolution:
sorry.. hab es eingetippt und vertippt.. jetzt macht er es, aber ich bekomme trotzdem
jetzt die Fehlermeldung, dass der Quell und Zielpfad nicht identisch sein dürfen..
verstehen tu ich das nicht
dann hast du einen doppelten Ordnernamen mit der Umbenennung produziert.sorry.. hab es eingetippt und vertippt.. jetzt macht er es, aber ich bekomme trotzdem
jetzt die Fehlermeldung, dass der Quell und Zielpfad nicht identisch sein dürfen..
verstehen tu ich das nicht
Für diesen Fall musst du es dann so schreiben:
dir 'C:\DeinRootOrdner' -recurse | ?{$_.PSIsContainer -and $_.Name -match '\d{4}'} | rename-item -NewName {$_.Name -replace '^(.*?)(\d{4})(.*)$','$1$3($2)'} -ErrorAction SilentlyContinue
Schönen Abend
Grüße Uwe