Umbenennen von Dateinamen abhängig vom Verzeichnisnamen und Dateien verschieben
Ich habe meine Hörbuchsammlung in MP3 umgewandet, um sie komfortabel im Auto, auf dem MP3-Player und per Audiocenter zu hören.
Dabei ergibt sich leider ein Problem, das ich mit eurer Hilfe zu lösen hoffe.
Wie im Vorwort geschrieben haben ich meine Hörbuchsammlung in MP3 umgewandelt.
Die einzelnen Hörbücher befinden sich nun in einem Verzeichnis, das den Namen des Hörbuches trägt und sind in diesem noch einmal in Unterverzeichisse (CD01, CD02....) sortiert.
Leider kann meine gewünschte Abspielkombination (Fritzbox 7390 Mediacenter / 1&1 Audiocenter) nicht mit Unterverzeichnissen und auch nicht mit Playlists umgehen.
Ich möchte mir deshalb eine Batch schreiben, die die MP3-Dateien in den Unterverzeichnissen umgebenennt, indem sie den Dateinamen abhängig vom Unterverzeichnisnamen ein Prefix anhängt und die umbenannte Datei ins Hauptverzeichnis verschiebt.
Die Batch würde sich dabei im Hauptverzeichnis befinden oder - was mir noch besser gefallen würde -in einem übergeordneten Verzeichnis, in dem sich das Hörbuch -Hauptverzeichnis befindet.
Damit ihr besser versteht, was ich meine hier ein Beispiel, wie ich es mir vorstelle
:
Ich hätte dann auf meiner Festplatte ein Verzeichnis "MP3s-umwandeln", in dem sich die Batch befindet.
In dieses kopiere ich zum Umbenennen nun das Hörbuch "Krimi1", das sich im Verzeichnis "Krimi1" befindet.
In dem kopierten Verzeichnis "Krimi1" befinden sich die Unterverzeichnisse CD01 bis CD15 und darin die MP3-Files.
Die Batch soll nun die MP3-Files der Reihe nach umbenennen und den Dateinamen entweder einfach den Verzeichnisnamen voranstellen - Aus dem MP3 "01-Vorwort.mp3" würde dann "CD01-01-Vorwort.mp3" - oder, was ich noch "schicker" fände, aus dem MP3 "01-Vorwort.mp3, das sich im Unterverzeichnis CD01 befindet würde "001-01-Vorwort.mp3".
Die umbenannten Dateien sollen dann aus den Unterverzeichnissen CD01 bis CD015 ins Hauptverzeichnis "Krimi1" verschoben werden.
Die leeren Unterverzeichnisse könnten dann noch vom Batch gelöscht werden, aber das kann ich zur Not auch noch selbst
Wie ließe sich dies unter Windows XP realisieren?
Viele Grüße
Steve
Dabei ergibt sich leider ein Problem, das ich mit eurer Hilfe zu lösen hoffe.
Wie im Vorwort geschrieben haben ich meine Hörbuchsammlung in MP3 umgewandelt.
Die einzelnen Hörbücher befinden sich nun in einem Verzeichnis, das den Namen des Hörbuches trägt und sind in diesem noch einmal in Unterverzeichisse (CD01, CD02....) sortiert.
Leider kann meine gewünschte Abspielkombination (Fritzbox 7390 Mediacenter / 1&1 Audiocenter) nicht mit Unterverzeichnissen und auch nicht mit Playlists umgehen.
Ich möchte mir deshalb eine Batch schreiben, die die MP3-Dateien in den Unterverzeichnissen umgebenennt, indem sie den Dateinamen abhängig vom Unterverzeichnisnamen ein Prefix anhängt und die umbenannte Datei ins Hauptverzeichnis verschiebt.
Die Batch würde sich dabei im Hauptverzeichnis befinden oder - was mir noch besser gefallen würde -in einem übergeordneten Verzeichnis, in dem sich das Hörbuch -Hauptverzeichnis befindet.
Damit ihr besser versteht, was ich meine hier ein Beispiel, wie ich es mir vorstelle
Ich hätte dann auf meiner Festplatte ein Verzeichnis "MP3s-umwandeln", in dem sich die Batch befindet.
In dieses kopiere ich zum Umbenennen nun das Hörbuch "Krimi1", das sich im Verzeichnis "Krimi1" befindet.
In dem kopierten Verzeichnis "Krimi1" befinden sich die Unterverzeichnisse CD01 bis CD15 und darin die MP3-Files.
Die Batch soll nun die MP3-Files der Reihe nach umbenennen und den Dateinamen entweder einfach den Verzeichnisnamen voranstellen - Aus dem MP3 "01-Vorwort.mp3" würde dann "CD01-01-Vorwort.mp3" - oder, was ich noch "schicker" fände, aus dem MP3 "01-Vorwort.mp3, das sich im Unterverzeichnis CD01 befindet würde "001-01-Vorwort.mp3".
Die umbenannten Dateien sollen dann aus den Unterverzeichnissen CD01 bis CD015 ins Hauptverzeichnis "Krimi1" verschoben werden.
Die leeren Unterverzeichnisse könnten dann noch vom Batch gelöscht werden, aber das kann ich zur Not auch noch selbst
Wie ließe sich dies unter Windows XP realisieren?
Viele Grüße
Steve
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 17.03.2012 um 20:48:04 Uhr
Ich möchte mir deshalb eine Batch schreiben, die die MP3-Dateien in den Unterverzeichnissen umgebenennt,
Hmmm, mit Batch geht fast alles inklusive Brotschneiden....Aber ob es auch zum Umgebenenntieren das richtige Werkzeug ist...?
Set /a rgc +=1
#801
Content-ID: 182138
Url: https://administrator.de/forum/umbenennen-von-dateinamen-abhaengig-vom-verzeichnisnamen-und-dateien-verschieben-182138.html
Ausgedruckt am: 21.04.2025 um 18:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo steveXX und willkommen im Forum!
Wenn es jeweils nur eine Unterverzeichnisebene gibt und jeweils nur die letzte Stelle des Namens (also von "CD01" nur die "1") verwendet werden soll, dann (weitgehend ungetestet) etwa so:
Zur Verwendung: Einfach das Hauptverzeichnis (in Deinem Beispiel also "Krimi1") per Drag & Drop an den Batch übergeben. Es werden dann alle in den Unterordnern (nur 1. Ebene) befindlichen Dateien umbenannt und "nach oben" geholt. Wenn der Unterordner danach leer ist (was er eigentlich sein sollte), wird er gelöscht.
Grüße
bastla
P.S.: "Mp3tag" ist aber jedenfalls auch ein guter Vorschlag ...
[Edit] Präfix angepasst [/Edit]
Wenn es jeweils nur eine Unterverzeichnisebene gibt und jeweils nur die letzte Stelle des Namens (also von "CD01" nur die "1") verwendet werden soll, dann (weitgehend ungetestet) etwa so:
@echo off & setlocal
if #%1#==## echo Hauptverzeichnis auf Batchdatei ziehen! & pause & goto :eof
pushd %1
for /d %%i in (*) do call :ProcessDir "%%~nxi"
popd
goto :eof
:ProcessDir
set "CDName=%~1"
set "Prefix=0%CDName:~-2%-"
for %%a in ("%~1\*.*") do move "%%a" "%Prefix%%%~nxa"
rd %1
goto :eof
Grüße
bastla
P.S.: "Mp3tag" ist aber jedenfalls auch ein guter Vorschlag ...
[Edit] Präfix angepasst [/Edit]
Hallo steveXX!

Ist jetzt oben angepasst (wobei die führende 0 konstant angegeben ist, da aus der CD-Nummer ja nur 2 Stellen zu extrahieren sind); sollte es aber doch 3-stellige CD-Nummern geben, dann
Grüße
bastla
[Edit]
Vorher hatte ich noch zugegeben:
Ich weiß ja nicht, wieviele CD zu einem Hörspiel gehören können
- fiel aber dann Tante Edith zum Opfer ... 
@t-mo
[/Edit]
Ich glaube, es reicht nicht, wenn nur die letzte Stelle des Namens (also von CD01 nur die 1) verwendet wird
Sorry, hatte Dein Beispiel zu ungenau gelesen ... Ist jetzt oben angepasst (wobei die führende 0 konstant angegeben ist, da aus der CD-Nummer ja nur 2 Stellen zu extrahieren sind); sollte es aber doch 3-stellige CD-Nummern geben, dann
set "Prefix=%CDName:~-3%-"
bastla
[Edit]
Vorher hatte ich noch zugegeben:
Ich weiß ja nicht, wieviele CD zu einem Hörspiel gehören können
- fiel aber dann Tante Edit
@t-mo
Wenn der Unterordner danach leer ist
Es werden ja derzeit alle Dateien verschoben (und daher auch auf zB "001-cover.jpg" umbenannt) ...[/Edit]

moin,
ein ganz alter Trick...
kannst du rel. einfach via mp3tag durchnudeln und solltest du auch - denn du musst auch die id3 tags anfassen, sonst sind das (in 85% der Fälle gertennte Alben - je nachdem - wo du die Infos versteckt) hast.
Und ID3 Tags via batch verhackstückeln ist viel aufwendiger, als sich mal eben schnell n Perl script zu zimmern.
Gruß
edit
/edit
edit²
/edit²
ein ganz alter Trick...
- Lied/Titel 1 von Cd1 hat tracknummer 101
- Lied/Titel 5 von Cd4 hat tracknummer 405
kannst du rel. einfach via mp3tag durchnudeln und solltest du auch - denn du musst auch die id3 tags anfassen, sonst sind das (in 85% der Fälle gertennte Alben - je nachdem - wo du die Infos versteckt) hast.
Und ID3 Tags via batch verhackstückeln ist viel aufwendiger, als sich mal eben schnell n Perl script zu zimmern.
Gruß
edit
Ich weiß ja nicht, wieviele CD zu einem Hörspiel gehören können
- die meisten haben 6, manche aber auch mal 12
aber mehr als 12 hab selbst ich nicht.
/edit
edit²
Wenn der Unterordner danach leer ist
hmmmmmmanchmal legt man sich da auch ne cover.jpg rein..../edit²