kaya33
Goto Top

Mehrere Dateinamen automatisiert umbenennen

Hallo zusammen

Ich möchte ca. 9000 Pdf-Dateien per PowerShell (wenn möglich CMD oder Batch-Datei geht auch) umbenennen. Die Dateien sind auf mehrere Unterverzeichnisse verteilt. Ich kenne mich mit Codierung leider nicht aus. Könnte jemand mir dabei helfen? Ich wäre über jede Hilfe sehr Dankbar!!

Betriebssystem: Windows 10 (PowerShell, CMD vorhanden)

Dateiname 1 alt: Abl_UR_JJJJ_Nrxx_xxxx-xxxx.pdf
Dateiname 1 neu: JJJJ_Ausgabe_Nrxx_Seiten_xxxx-xxxx.pdf (hier wird "Abl_Ur_" entfernt, nach "JJJJ_" "Ausgabe_" hinzugefügt, nach "Nrxx_ " "Seiten_" hinzugefügt)

Dateiname 2 alt: Abl_UR_JJJJ_Bxx_xxxx-xxxx.pdf
Dateiname 2 neu: JJJJ_Beilage__Nrxx_Seiten_xxxx-xxxx.pdf (hier wird "Abl_Ur_" entfernt, nach "JJJJ_" "Beilage__" hinzugefügt, "B" wir durch "Nr" ersetzt, nach "Nrxx_" "Seiten_" hinzugefügt)

Dateiname 3 alt: Abl_UR_JJJJ_Bxx_x_xxxx-xxxx.pdf
Dateiname 3 neu: JJJJ_Beilage__Nrxx_x_Seiten_xxxx-xxxx.pdf (hier wird "Abl_Ur_" entfernt, nach "JJJJ_ " "Beilage__" hinzugefügt, "B" wir durch "Nr" ersetzt, nach "Nrxx_x_" "Seiten_" hinzugefügt)

Dateiname 4 alt: Abl_UR_1849_Register_xxxx-xxxx.pdf
Dateiname 4 neu: JJJJ_Register_xxxx-xxxx.pdf (hier wird "Abl_Ur_" entfernt)

x`s und JJJJ dürfen nicht geändert werden.

Vielen dank und beste Grüsse
Kai

Content-ID: 512241

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

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

MarkBeaker
MarkBeaker 06.11.2019 um 09:33:16 Uhr
Goto Top
Hallo Kai,

soll das einmalig erfolgen, dann könnte ich dir auch ein Programm names TotalCommander vorschlagen.

Gruß
Christian
141575
Lösung 141575 06.11.2019 aktualisiert um 12:43:52 Uhr
Goto Top
$ordner = 'D:\Blablub'  
Get-ChildItem $ordner -Filter *.pdf -File -Recurse -PipelineVariable file | ?{$_.Basename -match '^Abl_UR_(\d{4})_([^\d]+)(\d*)_(\d+_)?(.*)$'} | %{  
    switch($matches[2]){
        'Nr' {$newname = $matches[1] + "_" + $matches[2] + $matches[3] + "_Seiten_" + $matches[5] + $file.Extension}  
        'B' {  
            if ($matches[4] -ne ''){  
                $newname = $matches[1] + "_Beilage__Nr" + $matches[3] + "_" + $matches[4] + "Seiten_" + $matches[5] + $file.Extension  
            }else{
                $newname = $matches[1] + "_Beilage__Nr" + $matches[3] + "_Seiten_" + $matches[5] + $file.Extension  
            }
        }
        'Register' {$newname = $matches[1] + "_" + $matches[2] + "_" + $matches[5] + $file.Extension}  
    }
    rename-item $_.FullName -NewName $newname -Force -verbose
}
Ich kenne mich mit Codierung leider nicht aus.
Was meinst du mit "Codierung" ?? Die hat damit ja erst mal gar nichts zu tun ist ja erst mal nur eine reine Umbenennung, ich denke du meinst sicher "Coding" face-wink ...
kaya33
kaya33 06.11.2019 aktualisiert um 13:48:04 Uhr
Goto Top
Hallo

Vielen herzlichen Dank für deine prompte Unterstützung!

Der Code funktioniert bis auf "Ausgabe_" bei "Dateiname 1" . Nach Jahreszahl sollte noch "Ausgabe_" hinzugefügt werden. Wäre es noch möglich dies anzupassen?

PS: ja sorry "Coding"

Beste Grüsse
Kai
Kraemer
Lösung Kraemer 06.11.2019 aktualisiert um 14:01:04 Uhr
Goto Top
Zitat von @kaya33:
Nach Jahreszahl sollte noch "Ausgabe_" hinzugefügt werden. Wäre es noch möglich dies anzupassen?

$ordner = 'D:\Blablub'  
Get-ChildItem $ordner -Filter *.pdf -File -Recurse -PipelineVariable file | ?{$_.Basename -match '^Abl_UR_(\d{4})_([^\d]+)(\d*)_(\d+_)?(.*)$'} | %{  
    switch($matches[2]){
        'Nr' {$newname = $matches[1] + "_Ausgabe_" + $matches[2] + $matches[3] + "_Seiten_" + $matches[5] + $file.Extension}  
        'B' {  
            if ($matches[4] -ne ''){  
                $newname = $matches[1] + "_Beilage__Nr" + $matches[3] + "_" + $matches[4] + "Seiten_" + $matches[5] + $file.Extension  
            }else{
                $newname = $matches[1] + "_Beilage__Nr" + $matches[3] + "_Seiten_" + $matches[5] + $file.Extension  
            }
        }
        'Register' {$newname = $matches[1] + "_" + $matches[2] + "_" + $matches[5] + $file.Extension}  
    }
    rename-item $_.FullName -NewName $newname -Force -verbose
 }
kaya33
kaya33 06.11.2019 um 14:33:13 Uhr
Goto Top
Perfekt!!

Vielen Dank und Beste Grüsse aus der Schweiz
kaya33
kaya33 06.11.2019 um 16:30:33 Uhr
Goto Top
Hallo Christian

Danke für den Tipp.

Grüsse