Konverter: Track zweistellig Dateinamen voranstellen

Hallo,

wahrscheinlich steht es irgendwo, aber ich hab's nicht gefunden. (Gegebenenfalls reicht ein kurzer Hinweis wo.) Ich möchte den vorhandenen Dateinamen die Track-Nummer zweistellig voranstellen, damit die Dateien in der Reihenfolge der Track-Nummern abgespielt werden. Soweit bin ich:

%track% - %_filename%

Aber von 1 bis 9 wird die Nummer eben einstellig vorangestellt, so dass in der Reihenfolge 1, 11, 12, 13, 14, 2, 3, 4 usw. wiedergegeben wird.

Danke im Voraus und Gruß, Anselm

Guckst du die Hilfe (hier der Link zur englischen im Netz - sonst F1 in Mp3tag drücken):
http://help.mp3tag.de/main_converter.html#ttf

Am Ende der Liste der Variablen sind Beispiele für $num() und 2-stellige Tracknummern

O weh, wer lesen kann, ist echt im Vorteil, ich aber nicht. Auf dieser Seite war ich, habe aber offenkundig nicht genau genug geschaut. Klappt astrein.

Dank und Gruß, Anselm

Ich möchte hier mal meinen Formatstring für Tag->Dateiname teilen:

[$if($strcmp(%discnumber%,1/1),,$num(%discnumber%,1)-)]$num(%track%,2) - $if(%compilation%=1,$if(%origartist%,%artist% - ,),)$replace($validate($replace($replace(%title%,",''),?,), - ), , )

vorherige Version (siehe nachfolgender Post)

[$num(%discnumber%,1)-]$num(%track%,2) - $if(%compilation%=1,$if($len(%origartist%)>0,%artist% - ,),)$replace($validate($replace($replace(%title%,",''),?,), - ), , )

Erklärung:
Wenn eine CD-Nummer vorhanden ist, wird diese vorangestellt (bei Multidisc-Scheiben wichtig, wenn man diese in einem Ordner ablegt und die Sortierung auch im Explorer erhalten bleiben soll). Ich habe auf Unterordner wie CD1, CD2 usw. verzichtet.

Außerdem wird bei Kompilationen, wenn das Feld origartist gefüllt ist, der Künstler in den Dateinamen geschrieben. Sonst nur der Titel. Dann noch einige Ersetzungen, die im Dateinamen nicht gültig sind, wie das Fragezeichen.

Dies ist keine gültige Syntax für $if() - für Vergleiche müsstest du $ifgreater() o.ä. nehmen.
Dass du trotzdem eine Ausgabe bekommst, liegt einfach daran, dass auch lediglich vorhandenes Feld ORIGARTIST die Bedingung wahr werden lässt.
Du könntest also das Ganze abkürzen zu
$if(%origartist%,...

Danke für den Tipp. Habe ich behoben und gleich noch abgefragt, ob die Discnumber 1/1 ist:

[$if($strcmp(%discnumber%,1/1),,$num(%discnumber%,1)-)]$num(%track%,2) - $if(%compilation%=1,$if(%origartist%,%artist% - ,),)$replace($validate($replace($replace(%title%,",''),?,), - ), , )

Noch eine kleine Modifikation. Jetzt werden auch mehrere Leerzeichen hintereinander gegen ein Leerzeichen ersetzt.

[$if($strcmp(%discnumber%,1/1),,$num(%discnumber%,1)-)]$num(%track%,2) - $if(%compilation%=1,$if(%origartist%,%artist% - ,),)$regexp($validate($replace(%title%,?,), - ),\s+, )