Dateiname auslesen und nur bestimmte Dateien umbenennen
Hallo,
bei mir gibt es in einigen Ordnern Dateien, die mit einem "_" getrennt sind. Einige davon haben 4, andere 5 Textbausteine im Dateinamen. Hier sollten jetzt nur diese Dateien mit 5 Textbausteinen umbenannt werden. Diese soltlen nun mit Hilfe einer Bacth-Datei umbenannt werden.
z.B. gibt es folgende Dateien:
a_b_c_d.jpg
a_b_c_d_e.jpg
Alle Dateien mit 4 Bausteinen im Dateinamen sollen gleich bleiben, bei den Dateien mit 5 Bausteinen sollen 2 Bausteine vertauscht werden, also sollte es dann wie folgt aussehen:
a_b_c_d.jpg
a_b_d_c_e.jpg
Das mit dem Umbennen klappt schon, aber ich weiss nicht genau, wie man bei einer for Schleife die unterschiedliche Zahl der Bausteine, die mit Unterstrichen getrennt sind zählt und nur bei einer bestimmten Anzahl umbennent.
Vielen Dank
silentmexx
bei mir gibt es in einigen Ordnern Dateien, die mit einem "_" getrennt sind. Einige davon haben 4, andere 5 Textbausteine im Dateinamen. Hier sollten jetzt nur diese Dateien mit 5 Textbausteinen umbenannt werden. Diese soltlen nun mit Hilfe einer Bacth-Datei umbenannt werden.
z.B. gibt es folgende Dateien:
a_b_c_d.jpg
a_b_c_d_e.jpg
Alle Dateien mit 4 Bausteinen im Dateinamen sollen gleich bleiben, bei den Dateien mit 5 Bausteinen sollen 2 Bausteine vertauscht werden, also sollte es dann wie folgt aussehen:
a_b_c_d.jpg
a_b_d_c_e.jpg
Das mit dem Umbennen klappt schon, aber ich weiss nicht genau, wie man bei einer for Schleife die unterschiedliche Zahl der Bausteine, die mit Unterstrichen getrennt sind zählt und nur bei einer bestimmten Anzahl umbennent.
Vielen Dank
silentmexx
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 217799
Url: https://administrator.de/forum/dateiname-auslesen-und-nur-bestimmte-dateien-umbenennen-217799.html
Ausgedruckt am: 09.04.2025 um 21:04 Uhr
3 Kommentare
Neuester Kommentar
Moin,
nur der vollständigkeit halber noch ein funktionsfähiges Powershell-Script (Pfad zu den Dateien in Zeile 1 angeben):
Grüße Uwe
nur der vollständigkeit halber noch ein funktionsfähiges Powershell-Script (Pfad zu den Dateien in Zeile 1 angeben):
$path = 'E:\temp'
$files = dir $path | ?{$_.Name -match "(.*)_(.*)_(.*)_(.*)_(.*)\.([^\.])+" -and !($_.PSIsContainer)}
foreach($file in $files){
$newName = $file.Name -replace '(.*)_(.*)_(.*)_(.*)_(.*)\.([^\.]+)','$1_$2_$4_$3_$5.$6'
$file | Rename-Item -NewName $newName
}
Grüße Uwe