stevexx
Goto Top

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 face-smile :

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 face-wink

Wie ließe sich dies unter Windows XP realisieren?


Viele Grüße
Steve
Kommentar vom Moderator Biber am Mar 17, 2012 um 19: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-Key: 182138

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

Printed on: April 23, 2024 at 07:04 o'clock

Member: jsysde
jsysde Mar 17, 2012 at 16:17:34 (UTC)
Goto Top
Moin,

www.mp3tag.de - damit sollte sich das realisieren lassen.

Cheers,
jsysde
Member: bastla
bastla Mar 17, 2012 at 17:03:03 (UTC)
Goto Top
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:
@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
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]
Member: steveXX
steveXX Mar 17, 2012 at 17:23:06 (UTC)
Goto Top
@bastla
Vielen Dank für die schnelle Antwort und auch jsysde für seinen Tip!

Ich glaube, es reicht nicht, wenn nur die letzte Stelle des Namens (also von CD01 nur die 1) verwendet wird, denn dann würden Dateien aus den Verzeichnissen CD01, CD11, CD21 etc. dasselbe Prefix erhalten, oder mache ich da einen Denkfehler?

Wenn es in dem Fall in Ordner CD01 und CD11 jeweils ein File namens "Track01.mp3" gäbe, würden dann nicht beide denselben Namen erhalten bzw. das alte vom neuen File überschrieben werden, wenn die Files verschoben werden?

Viele Grüße
Steve
Member: bastla
bastla Mar 17, 2012 at 17:27:40 (UTC)
Goto Top
Hallo steveXX!
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 ... face-sad

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%-" 
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 ... face-wink

@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]
Mitglied: 60730
60730 Mar 17, 2012 at 17:29:40 (UTC)
Goto Top
moin,

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 face-wink aber mehr als 12 hab selbst ich nicht.
von ausnahmen wie hui buh usw. mal abgesehen, aber das sind strenggenommen ja auch immer einzelne "bücher"
/edit
edit²
Wenn der Unterordner danach leer ist
hmmmmmmanchmal legt man sich da auch ne cover.jpg rein....
/edit²
Member: steveXX
steveXX Mar 17, 2012 at 18:13:24 (UTC)
Goto Top
@bastla

Vielen, Vielen Dank! face-big-smile

Das Script funktioniert hervorragend und tut genau das, was ich mir gewünscht habe! face-smile

Manche Hörbücher bestehen aus mehr als 20 CDs. Je nachdem, wie dick das Buch ist, das vorgelesen wird.
Hörspiele sind meist kürzer.
Hörbücher mit mehr als 99 CDs habe ich aber noch nicht gesehen und kann es mir auch nicht vorstellen face-smile

@timbeil

Du schriebst "- 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."

Hm, vielleicht hast du da höhere Ansprüche an die MP3-Dateien als ich. Ich habe die CDs mit dem Audiograbber nach MP3 umgewandelt und der hat ggf. die Informationen für die Tags über freedb geholt.
Der Audiograbber hat die Files beim Erstellen so benannt, dass sie aufgrund des Dateinamens in der richtigen Reihenfolge abgespielt werden.
Von daher reicht es mir, wenn dies nach dem Umbenennen und Verschieben aller MP3-Dateien in ein Verzeichnis nun wieder der Fall ist.
Vielleicht habe ich dich aber auch nur falsch verstanden face-smile

Auf jeden Fall nochmals an alle vielen Dank für eure Beiträge auf meine Frage und ganz besonders an bastla für sein Script!

Viele Grüße
Steve