Ordner mit Anfangsbuchstaben


#1

Hallo
Wenn ich die Tags der Musikdateien in Ordnung sind verschiebe ich sie mit dem Tag - Dateiname mit folgendem Formatstring:

D:\mp3\%artist%\%artist% - %title%

Nun möchte ich aber, dass vor dem Artist noch einen Ordner mit dem Anfangsbuchstaben generiert.
Also so sollte es dann aussehen:

D:\mp3\A\Anastasia - Lied

Weiss jemand eine Lösung?

Danke für Eure Bemühungen


#2

Das geht einfach mit D:\mp3$left(%artist%,1)\%artist% - %title%
Viele Grüße,
~ Florian


#3

Hallo, hab mich auch in diese Richtung geforscht und bin zu folgendem Ergebnis gekommen:

i:\music\$if($isdigit($left(%artist%,1)),# NUM #,$left(%artist%,1))\\%artist%\\%album%\\%artist% - $num(%track%,2) - %title%

Der Unterschied zum Vorschag von Florian: Alle Interpreten, die mit einer Zahl anfangen (z. B. 2 Pac) werden in einen Ordner namens # NUM # verschoben, das finde ich besser als Ordner für jede Zahl.

Die Funktion tut folgendes:

  • i:\music\

sollte klar sein, definiert meinen Stammordner für Musik

  • $if($isdigit($left(%artist%,1)),# NUM #,$left(%artist%,1))\

prüft, ob es sich beim ersten Zeichen das Interpreten um eine Ziffer handelt, wenn ja, wird der Ordner '# NUM #' verwendet, wenn nicht, der Anfangsbuchstabe des Interpreten

  • %artist%\%album%\

Unterhalb der Buchstaben-Verzeichniss ordne ich nach Interpret und Album

  • %artist% - $num(%track%,2) - %title%

definiert den Dateinamen, beim mir Interpret - Track (mit führender Null)- Title

Der Titel 'All Bout U' von '2 Pac' (Album 'All Eyez On Me (CD 1)/Track 2 würde also wie folgt formatiert:

i:\music\# NUM #\2 Pac\All Eyez On Me (CD 1)\2 Pac - 02 - All Bout U.mp3

Bin noch am überlegen, ob ich eine Überprüfung einbaue, ob eine Track-Nummer vorhanden ist, und wenn nicht, nur Interpret - Titel verwenden. Leider bin ich noch nicht weit gekommen, die Funktion

%artist% - $if(%track%="",%title%,$num(%track%,2) - %title%)

liefert immer 'Interpret - 00 - Title' und eben nicht 'Interpret - Title'.

Habe ich die If-Funktion falsch verwendet?

mfg

DER LUX


#4

Es gibt kein = bei $if()
$if(%track%,..,..) reicht schon


#5

Hallo!

Danke für den Tip, auch wenn ich mich erst jetzt wieder melde.

Bin fast selbst auf die Lösung gekommen, allerdings etwas komplizierter:

artist% - $if($isdigit(%track%),$num(%track%,2) - %title%,%title%)

Ich habe mir gedacht, dass die $isdigit()-Funktion FLASCH liefert, wenn %track% leer ist, und das hat auch geklappt.

Aber es geht auch einfacher, wie du geschrieben hast. Der Vorteil meiner Lösung ist jedoch, dass bei nicht-numerischen Einträgen von %track% auch kein Trackeintrag im Dateinamen erscheint, also

interpret - aa - titel

würde NICHT vorkommen.

Ist eine nicht-nummerische Eingabe beim Track überhaupt vorgesehen? Oft sieht man ja beim Track xx/yy oder sowas. Ich lösche das /yy immer, aber wie geht MP3-Tag damit um?

mfg

DER LUX


#6

Hallo lux,

In das Track-Feld bei den Eingabefeldern kannst Du nur Zahlen und den Schrägstrich eingeben. Allerdings handelt es sich bei dem Feld in manchen Tag-Formaten um ein Textfeld, so das auch sonstiges einhalten sein kann.

Viele Grüße,
~ Florian