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-Key: 512241

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

Printed on: April 24, 2024 at 03:04 o'clock

Member: MarkBeaker
MarkBeaker Nov 06, 2019 at 08:33:16 (UTC)
Goto Top
Hallo Kai,

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

Gruß
Christian
Mitglied: 141575
Solution 141575 Nov 06, 2019 updated at 11:43:52 (UTC)
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 ...
Member: kaya33
kaya33 Nov 06, 2019 updated at 12:48:04 (UTC)
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
Member: Kraemer
Solution Kraemer Nov 06, 2019 updated at 13:01:04 (UTC)
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
 }
Member: kaya33
kaya33 Nov 06, 2019 at 13:33:13 (UTC)
Goto Top
Perfekt!!

Vielen Dank und Beste Grüsse aus der Schweiz
Member: kaya33
kaya33 Nov 06, 2019 at 15:30:33 (UTC)
Goto Top
Hallo Christian

Danke für den Tipp.

Grüsse