IF-THEN-ELSE in Organise-String

Für das Organisen habe ich mir den folgenden String gebastelt:

D:\Audio\Organized\$if($eql(%albumartist%,Various Artists),\--\VA\\%album% ['['%year%']'],$if($eql(%albumartist%,Soundtrack),\--\ST\\%album% ['['%year%']'],\$left(%albumartist%,1)\\%albumartist%\['['%year%']' ]%album%),)\[$num(%disc%,1)]%track%. %artist% - %title%

Leider funktioniert das nicht - es scheint ein Fehler in IF-THEN-ELSE zu sein. Ich habe den String in TagScanner 6 beta probiert. Da funktioniert er einwandfrei (mit $equal anstatt $eql). Ich würde aus verschiedenen Gründen lieber mp3tag benutzen. Kann mir jemand von euch hhelfen?

'D:\Audio\Organized'$if($eql(%ALBUMARTIST%,'Various Artists'),'\--\VA\'%ALBUM%[' ['%YEAR%']'],$if($eql(%ALBUMARTIST%,'Soundtrack'),'\--\ST\'%ALBUM%[' ['%YEAR%']'],'\'$left($if2(%ALBUMARTIST%,%ARTIST%),1)'\'$if2(%ALBUMARTIST%,%ARTIST%)'\'['['%YEAR%'] ']%ALBUM%))'\'[$num(%DISC%,1)]%TRACK%'. '%ARTIST%' - '%TITLE%

DD.20151217.2120.CET, DD.20151218.1228.CET

Vielen Dank für die schnelle Antwort DetlevD

So gibt es schon mal keinen Fehler mehr, aber das Folgende wird nicht berücksichtigt:

$left(%ALBUMARTIST%,1)\%ALBUMARTIST%\

Vielleicht findedt Du dafür noch eine Lösung.

Für die Logik des Vorgangs und des Formatstrings bist du verantwortlich, ...
vielleicht kannst du die Funktion in Worten beschreiben, ...
und mit Beispielen illustrieren, ...
damit man nachvollziehen kann, was ein Formatstring tun soll.

DD.20151218.0715.CET

OK, ich versuch's mal:

Zielordner ist D:\Audio\Organized\
IF ALBUMARTIST = Various Artists
THEN Albumtyp ist Sampler
    gehe in den existierenden Ordner VA
    erstelle Ordner mit ALBUM vor [YEAR]
ELSE
    IF ALBUMARTIST = Soundtrack
    THEN Albumtyp ist Soundtrack
        gehe in den existierenden Ordner ST
        erstelle Ordner mit ALBUM vor [YEAR]
    ELSE Albumtyp ist normales Album
        erstelle Ordner mit Initial von ALBUMARTIST (z.B. K für Kettcar)
        gehe in diesen neuen Ordner
        erstelle Ordner mit [YEAR] vor ALBUM
    END IF
END IF
gehe in den gemäß Regel erstellten neuen Ordner
verschiebe alle Dateien
Syntax: einstellige DISC (falls vorhanden) TRACK. ARTIST - TITLE

Sorry, ich habe keine Abweichung erkannt zwischen deiner Ablaufbeschreibung und dem angebotenen Mp3tag Formatstring.
Ist das Tagfeld ALBUMARTIST in jedem Fall gefüllt?

DD.20151218.1054.CET

:w00t: Detlev, lass dir die Füße küssen!

NEIN, das Feld ist nicht (immer) gefüllt. Ich lösche es ggf. sogar, wenn es nur einen ARTIST gibt.

Von foobar und TagScanner kenne ich es so, dass die automatisch den ARTIST nehmen, wenn ALBUMARTIST leer ist. Das ist meines Erachtens auch absolut sinnvoll und wäre auch für mp3tag wünschenswert.

Vielen Dank, dass Du mich auf den richtigen Weg geführt hast!

Ich werde meine endgültige Version später in diesem Thread posten.

Ersetze im Skript wo es sinnvoll ist ...
%ALBUMARTIST%
... mit ...
$if2(%ALBUMARTIST%,%ARTIST%)

DD.20151218.1110.CET

Das ist es nicht. Jedenfalls nicht, wenn es um das Füllen von Feldern geht.
Es mag eine sinnvolle Funktion sein, auch Treffer zu zeigen, wenn die gesuchten Daten irgendwo in den Metadaten stehen - aber diese Funktion gibt es schon: per Filter.
Wie sollte sich der Automatismus denn bei COMPOSER oder INVOLVEDPEOPLE verhalten?

Für alle anderen, weiteren Funktionsaufrufe wäre ein wie auch immer gearteter Automatismus nur angetan, Chaos in eine Sammlung zu bringen, speziell wenn es um das Anlegen von neuen Verzeichnissen oder das Verschieben von Dateien geht.
Von daher geht es nicht ohne Gehirnschmalz.

Da bin ich voll bei Dir!

Ja, lecker Bauernbrot mit Gehirnschmalz. :wink:

Grüße aus und nach Norddeutschland!