# Powershell, Dateien umbenennen



## kaya33 (6. November 2019)

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


----------



## Sempervivum (6. November 2019)

Ich vermute mal, dass JJJJ und die xxxx nur Platzhalter sind und dass dort beliebige Zeichen auftreten können?


----------



## Zvoni (11. November 2019)

Sempervivum hat gesagt.:


> Ich vermute mal, dass JJJJ und die xxxx nur Platzhalter sind und dass dort beliebige Zeichen auftreten können?


Ich tippe darauf, dass "JJJJ" eine Jahreszahl ist (Bsp. "2019") und die "xxx...." Zahlen sind (fortlaufende Nummerierungen).
Unter Linux ist das mit "mmv" relativ einfach zu lösen.....


----------



## warface (18. Juni 2020)

hier ein Powershell-Skrip mit dem du das machen kannst.


```
ForEach ($file in Get-ChildItem  C:\temp\tool\Dateien\*.pdf -Recurse) #Verzeichnis inkl. Unterordner
{
$filename = $file.basename    #Dateiname
$fileex = $file.extension    #Dateiformat
$filepath = $file.directoryName #Dateipfad
$Subfolder = 'ready' #Unterordner für die fertigen Dateien
$year = $filename.Substring(7,4) #Jahr JJJJ
$NR = $filename.Substring(12,4) #Nrxx
$xxxx = $filename.Substring(17,9) #xxxx-xxxx
move-Item $file $filepath\$Subfolder\$year'_Ausgabe_'$NR'_Seiten_'$xxxx'.'$fileex
}
```


----------



## ComFreek (18. Juni 2020)

Zum Testen bei Move-Item das Argument -WhatIf hinzufügen. Dann siehst du erstmal, was es machen würde.


----------

