Dateinamen anpassen

  • Hallo,

    ich möchte gerne die Dateinamen in einem Verzeichnis anpassen. Den vorhandenen Dateien soll im Dateinamen eine Zahl vorangestellt werden.

    Damit möchte ich MP3-Dateien in eine bestimmte Reihenfolge bringen.

    Wenn ich eine CD mit Audiograbber in MP3-Dateien umwandel, lasse ich den einzelnen Lieder der CD die Zahlen 01, 02, 03 usw voranstellen.

    Möchte ich jetzt aber von einem Doppelalbum die Lieder beider Cds später in einem gemeinsamen Verzeichnis ablegen, z.B. zum Brennen fürs Auto, habe ich ein Problem. Jetzt habe ich 2 Dateien, deren Dateiname mit 01 anfängt, was die Lieder durcheinanderwürfelt.

    Daher möchte ich dem vorhandenen Titel der 1. CD eine 1 und den vorhandenen Titeln der 2. CD eine 2 im Dateinamen voranstellen.

    Das von Hand zu erledigen ist sehr umständlich, daher möchte ich das automatisieren.

    Leider habe ich keine Idee, wie ich das angehen soll.

    Kann mich mal bitte jemand auf den Weg schicken?


    Gruß Tom

    Einmal editiert, zuletzt von Onkel-tom (28. September 2011 um 16:30)

  • Dazu brauchst du egtl nicht viel.

    [autoit]

    _FileListToArray(); zum auflisten aller Dateien im Ordner
    For ; Schleife zum abarbeiten aller Arrayelemente
    Filemove; zum Verschieben/Umbenennen der dateien

    [/autoit]
  • Hier hast Du ein Denkanstoß ...

    Spoiler anzeigen
    [autoit]

    AutoItSetOption('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _Main()

    [/autoit] [autoit][/autoit] [autoit]

    Func _Main()
    Local $sCD1_Path = FileSelectFolder('CD 1 auswählen', '')
    Local $sCD2_Path = FileSelectFolder('CD 2 auswählen', '')
    Local $sDestPath = FileSelectFolder('Zielordner auswählen', '')
    _MoveMP3($sCD1_Path, $sDestPath)
    _MoveMP3($sCD2_Path, $sDestPath, 2)
    EndFunc ;==>_Main

    [/autoit] [autoit][/autoit] [autoit]

    Func _MoveMP3($p_sSourcePath, $p_sDestPath, $p_sPrefix = '1')
    If $p_sSourcePath = '' Then
    ConsoleWrite('FEHLER: Quellordner darf NICHT leer sein!' & @CRLF)
    Return
    EndIf
    If $p_sDestPath = '' Then
    ConsoleWrite('FEHLER: Zielordner darf NICHT leer sein!' & @CRLF)
    Return
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $hSearch = FileFindFirstFile($p_sSourcePath & '\*.mp3')
    ConsoleWrite('Verschiebe MP3s aus "' & $p_sSourcePath & '"' & @CRLF & _
    'nach "' & $p_sDestPath & '"' & @CRLF)
    While 1
    Local $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    FileMove($p_sSourcePath & '\' & $sFile, $p_sDestPath & '\' & $p_sPrefix & ' - ' & $sFile)
    ConsoleWrite(@TAB & 'Verschiebe ' & $sFile & ' ... ')
    If @error Then
    ConsoleWrite('FEHLER!' & @CRLF)
    Else
    ConsoleWrite('Erfolgreich!' & @CRLF)
    EndIf
    WEnd
    FileClose($hSearch)
    EndFunc ;==>_MoveMP3

    [/autoit]
  • Hallo onkel-tom,
    zunächst einmal, falls Du es noch nicht gesehen haben solltest, gibt es hier eine ID3 UDF die evtl. bei Deinem Vorhaben hilfreich ist.

    Abgesehen von autoit verwende ich gerne den Total Commander (Shareware) zum Umbenennen von Dateien. Dessen Umbenenn-Tool beherrscht auch z.B. Zähler, reguläre Ausdrücke oder auch id3-tags (letztere nur über eine plugin-schnittstelle, z.b. von wdxtaglib).

    Spezialisierte Tools für mp3s gibt es natürlich auch. Z.B. The Godfather bietet (unter anderem) eine Umbenenn Funktion

  • Ich nutze godfather zum taggen und verschieben und mache dann manuell einen Ordner für CD1 /CD2

    N
    -New Order
    --1987 - Substance
    ---CD1
    ----01 - New Order - Ceremony (12- Version with Gillian Gilbert).mp3

    Man beachte den manuellen Eintrag CD1 , den man bei Bedarf hinzufügen kann, der Rest ist ja dynamisch(1.Buchstabe Interpret\Interpret)
    Jedenfalls, wenn man sich daran gewöhnt hat, ist Godfather ein Tool was ich nicht mehr missen möchte.

    Gruß Dietmar

  • Hallo,

    vielen Dank für die schnellen Antworten.

    Bisher habe ich meine MP3-Dateien mit TagScanner bearbeitet. Das ist aber für die Ergänzung des Dateinamen nicht so geeignet.

    Werde mir die von Euch angebotenen Lösungsansätze in Ruhe ansehen und ausprobieren.


    Gruß Tom

  • Hallo,

    habe jetzt zufällig das gefunden, was ich gesucht habe.

    Mit der Freeware "Irfanview" kann man nicht nur Bilddateien, sondern auch alle anderen Dateien stapelweise umbenennen.

    Die Software bietet auch die Möglichkeit, bestehende Dateinamen zu ergänzen. Genau das hatte ich gesucht.

    Noch mal Danke für die Anregungen.

    Gruß Tom

  • Zitat

    Die Software bietet auch die Möglichkeit, bestehende Dateinamen zu ergänzen. Genau das hatte ich gesucht

    Wenn es Dir um so etwas geht, dachte zwar schon es gelesen zu haben, aber dafür nutze ich den TotalCommander. :)
    Und das darin versteckte Mehrfachumbenennungstool. Früher STRG+T heute STRG+M , damit geht dahingehend .... alles :D

    Gruß Dietmar