Skript zum Einordnen von MP3's

  • Ich habe ein altes Skript von mir wiederentdeckt. Wahrscheinlich gibt es solche aber schon viele. Außerdem sollte ich es noch ein bischen optimieren, aber egal erst mal.

    Das einfache Skript ordnet Dateien mit der Endung *.mp3 und der Bezeichnung 'Artist - Titel - ???.mp3' in Unterordner ein.

    Beispiel 'Michael Jackson - Black or White.mp3'. Hier wird zuerst ein Ordner 'M' erstellt, darunter ein Unterordner 'Michael Jackson' in den die Datei verschoben wird.
    Das Skript muss im gleichen Ordner liegen wie die MP3's.


    [autoit]

    $sicherheit = MsgBox(33,"Sicherheitsabfrage","Bist du sicher, dass du alle MP3's aus diesem Ordner automatisch einordnen lassen willst?"&@crlf&"Das Programm wurde zwar sorgfältig getestet, aber durch einen unvorhergesehenen"&@crlf&"Dateinamen könnte sich ein unerwartetes Ergebnis einstellen.")
    If $sicherheit = 2 Then
    Exit
    EndIf

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

    $search = FileFindFirstFile("*.mp3")

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

    If $search = -1 Then
    MsgBox(16, "Fehler", "Keine MP3's zum einordnen gefunden")
    Exit
    EndIf

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

    $rest=0
    $format=0

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $finden=StringInStr($file," -")
    If $finden>1 Then
    $grob=StringLeft($file,1)
    if Not FileExists($grob) Then DirCreate($grob)
    $Interpret = StringLeft($file, $finden - 1)
    if Not FileExists($grob&"/"&$Interpret) Then DirCreate($grob&"/"&$Interpret)
    $move_ok=FileMove($file,$grob&"/"&$Interpret,0)
    if $move_ok=0 Then $rest=$rest+1
    Else
    $format=$format+1
    EndIf
    WEnd
    FileClose($search)

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

    if $rest=1 Then MsgBox(64,"Warnung","Es konnte eine Datei nicht verschoben werden,"&@CRLF&"da sie schon vorhanden (doppelt) ist!")
    if $rest>1 Then MsgBox(64,"Warnung","Es konnten "&$rest&" Dateien nicht verschoben werden,"&@CRLF&"da sie schon vorhanden (doppelt) sind!")
    if $format=1 Then MsgBox(64,"Warnung","Es konnte eine Datei nicht verschoben werden,"&@CRLF&"da sie das falsche Format hat (keinen Bindestrich)!")
    if $format>1 Then MsgBox(64,"Warnung","Es konnten "&$format&" Dateien nicht verschoben werden,"&@CRLF&"da sie das falsche Format haben (keinen Bindestrich)!")

    [/autoit]