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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 251722
Url: https://administrator.de/contentid/251722
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
8 Kommentare
Neuester Kommentar
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