Hm, ja, jetzt verstehe ich etwas mehr, es geht um die Konstruktion von Dateinamen mit dem Konverter "Tag -Dateiname", das hast du ja auch schon in post #1 gesagt.
In der Tat gelingt es mit diesem Konverter, und mit dem fehlerhaften Skriptcode ...
$if(%ARTIST%,%ARTIST%" - ","")$if(%ALBUM%,%ALBUM%" - ","")$ifgreater(%TRACK%,9,$sub(%TRACK%,/%_%)". ",$if(%TRACK%,"0"$sub(%TRACK%,/%_%)". ",""))%TITLE%... tatsächlich ein brauchbares Ergebnis zu erzwingen.
Warum funktioniert das mit dem Konverter "Tag -Dateiname" und an anderer Stelle im Mp3tag nicht?
Die Erklärung ist relativ einfach.
Im Dateisystem gelten bestimmte Regeln für die Erzeugung von Dateinamen.
Zum Beispiel sind diese Zeichen verboten: < > ? " : | \ / *
Mp3tag ist deshalb so schlau und passt auf, dass verbotene Zeichen erst gar nicht im Dateisystem ankommen.
Mp3tag bügelt also ohne irgendeine Meldung die möglichen Eingabefehler des Anwenders aus, und entfernt automatisch z. B. die doppelten Anführungszeichen aus dem zu erzeugenden Dateinamen.
Dadurch dass der Konverter "Tag - Dateiname" die Eingabefehler automatisch entfernt, so wird trotzdem die Eingabe-Zeichenkette nicht nachträglich gültig, sondern bleibt fehlerhafter Code.
Ich empfehle deshalb, den Vorschlag aus post #1 für den eigenen Bedarf nicht zu verwenden.
Siehe auch ...
Wieder mal RegEx ....
Gesamtanzahl der Tracks wird nicht richtig augelesen
[F] $validate() broken?
DD.20140429.2022.CEST