Vielen, vielen Dank für die Formel. Klappt einwandfrei. Perfekt! Das ganze hat auch den Sinn, die maximale Pfadlänge von 255 Zeichen nicht durch unbedachte Tag-Eintäge zu überschreiten. Ich habe die Zahlen für das Album-Verzeichnis etwas angepasst:
...$left(%album%,$if($and(%album%,%band%),62,102))[$left( ¤ %band%,40)]...
Und mir die Logik durch die folgende Schreibweise etwas verdeutlicht:
$left(%album%, //das Verzeichnis für %album% ...
$if //wenn
($and(%album%,%band%) //ergibt wahr, wenn %album% UND %band% Inhalt haben
,62,102)) //wenn wahr 62 Zeichen, sonst 102
[$left( ¤ %band%,40)] //nur wenn %band% Inhalt hat, wird es mit der Länge 40 angefügt.
//Zusammen sind es immer 102 bis 105 Zeichen
Bei dem Versuch den Dateinamen ähnlich zu gestalten bin ich allerdings gescheitert:
%title%[; mit %lyricist%][; Dir. %conductor%]
Wenn entweder %lyricist% oder %conductor% vorhanden sind, sollen für %title% nur 38 Zeichen zur Verfügung stehen, sonst 56 Zeichen.
Kurzform sinngemäß: if ( (ti AND (ly OR co)) ) then 38 Z else 56 Z
Mein Ansatz sieht so aus:
$left(%title%,
$if //wenn
($and(%title%,( //einerseits ist wahr, wenn %title% UND
$or(%lyricist%,%conductor%) //andererseits ist wahr, wenn %ly% ODER %co% Inhalt haben
))
38,56)) //dann, sonst
[; mit %lyricist%][; Dir. %conductor%]
bzw. in einer Zeile:
$left(%title%,$if($and(%title%,($or(%lyricist%,%conductor%)))38,56))[; mit %lyricist%][; Dir. %conductor%]
Das Ganze ist wohl syntaxtisch richtig, aber die Bedingung ist offensichtlich falsch, weil NIE %title% ausgegeben wird. Erkennt jemand meinen Fehler?