Mp3tag Hilfe - Skriptbefehle

Skriptbefehle

Mp3tag bietet eine Reihe eingebauter Skriptbefehle, die an verschiedenen Stellen im Programm verwendet werden können. Diese Befehle bieten erweiterte Darstellungs- und Konvertierungsmöglichkeiten und ermöglichen somit die Anzeige und Ausgabe soweit wie möglich an die eigenen Wünsche anzupassen.

Die Idee für das Implementieren der Skriptbefehle kommt von meinem favorisierten Audio-Player foobar2000. Ich hatte bis zur Version 2.26 von Mp3tag eine andere Syntax benutzt - jetzt sollte die Syntax jedoch weitestgehend kompatibel sein.

Die Skriptbefehle können an folgenden Stellen im Programm verwendet werden:

Zeichen mit besonderer Funktion

[...] Text zwischen eckigen Klammern wird nur ausgegeben, wenn mindestens ein innerhalb der Klammern verwendeter Platzhalter gefunden wurde.
' Dieses Zeichen wird zum Markieren von Text verwendet, der nicht durch den Parser ausgewertet werden soll. Es dient dazu die folgenden Spezialzeichen zu maskieren. Möchten Sie dieses Zeichen ausgeben schreiben Sie bitte ''.
[]$% Diese Spezialzeichen müssen durch das ' Zeichen maskiert werden um nicht als Zeichen mit Funktionalität gewertet zu werden. Beispiel: '[' oder '$%'
,() Diese Zeichen müssen nur innerhalb einer Funktion mit ' Zeichen maskiert werden.

Folgende Befehle stehen zur Verfügung:

Hinweis: Befehle mit variabler Parameterzahl (z.B. $replace) sind auf < 64 Parameter beschränkt.

Ersetzen

Befehl: $replace(string,from,to) oder $replace(string,from1,to1,from2,to2,...)

Beispiel: $replace(%artist% - %album% - %track% - %title%,_,-)
Dieses Beispiel ersetzt alle Unterstriche aus der übergebenen Zeichenkette durch Bindestriche. Es können darüberhinaus weitere from/to Paare angegeben werden.

Ungültige Zeichen aus Dateinamen und -pfaden entfernen

Befehl: $validate(filename, to)

Beispiel: $validate(%artist% - %album% - %track% - %title%,-)
Dieses Beispiel ersetzt alle für Dateinamen ungültigen Zeichen (/?*"<>|:) in der übergebenen Zeichenkette durch Bindestriche.

Schreibweise Normal

Befehl: $caps(string,...)

Beispiel: $caps(%artist% - %album% - %track% - %title%)
Dieses Beispiel ändert die Schreibweise des Dateinamens auf Normal. Optional können Sie im zweiten Parameter noch Zeichen angeben, nach denen auch Großschreibung kommen soll.
Aus interpret - ALBUM - 01 tItel wird Interpret - Album - 01 Titel

Schreibweise Normal (Großbuchstaben werden beibehalten)

Befehl: $caps2(string,...)

Beispiel: $caps2(%artist% - %album% - %track% - %title%)
Dieses Beispiel ändert die Schreibweise des Dateinamens auf Normal. Bereits groß geschriebene Buchstaben werden nicht verändert. Optional können Sie im zweiten Parameter die Zeichen angeben, nach denen Großschreibung kommen soll.
Aus interpret - ALBUM - 01 tItel wird Interpret - ALBUM - 01 TItel

Schreibweise Satzweise

Befehl: $caps3(string,...)

Beispiel: $caps3(%artist% - %album% - %track% - %title%)
Dieses Beispiel ändert die Schreibweise der übergebenen Zeichenkette, so dass nur der erste Buchstabe groß geschrieben ist. Optional können Sie im zweiten Parameter noch Zeichen angeben, nach denen auch Großschreibung kommen soll.
Aus interpret - ALBUM - 01 tItel wird Interpret - album - 01 titel

Schreibweise GROSS

Befehl: $upper(string)

Beispiel: $upper(%artist% - %album% - %track% - %title%)
Dieses Beispiel ändert die Schreibweise der übergebenen Zeichenkette auf GROSS.
Aus interpret - ALBUM - 01 tItel wird INTERPRET - ALBUM - 01 TITEL

Schreibweise klein

Befehl: $lower(string)

Beispiel: $lower(%artist% - %album% - %track% - %title%)
Dieses Beispiel ändert die Schreibweise der übergebenen Zeichenkette auf klein.
Aus interpret - ALBUM - 01 tItel wird interpret - album - 01 titel

Führende Nullen

Befehl: $num(x,y)

Beispiel: $num(%track%,3)
Dieses Beispiel liefert die Tracknummer mit 3 Stellen.

Weitere Funktionen

String-Funktionen
$ansi(x) Gibt die Zeichenkette x in der aktuellen Codepage des Betriebssystems aus.
$char(x) Liefert das Unicode-Zeichen der Nummer x.
$cutLeft(x,n) Schneidet n Zeichen vom Anfang der Zeichenkette x und liefert das Ergebnis.
$cutRight(x,n) Schneidet n Zeichen vom Ende der Zeichenkette x und liefert das Ergebnis.
$distance(x,y) Berechnet die Editier-Distanz zwischen der Zeichenkette x und der Zeichenkette y und liefert das Ergebnis.
$folderdepth(x) Liefert die Anzahl an Ordnern die der Pfad x enthält.
$fmtNum(x) Formatiert die Zahl x mit Trennzeichen für Tausender.
$left(x,n) Liefert die ersten n Zeichen der Zeichenkette x.
$len(x) Liefert die Länge der Zeichenkette x.
$mid(x,n,i) Liefert die ersten i Zeichen der Zeichenkette x ab der Position n. Falls i nicht angegeben wird, wird das nte Zeichen zurückgegeben.
$ord(x) Liefert die Unicode-Nummer des Zeichens x.
$repeat(x,n) Liefert die Zeichenkette x n-Mal zurück.
$regexp(x,expr,repl) Ersetzt das durch den regulären Ausdruck expr angegebene Muster in der Zeichenkette x durch repl. Der vierte optionale Parameter gibt an ob Groß-/Kleinschreibung ignoriert (1) oder beachtet (0) werden soll.
$reverse(x) Dreht die Reihenfolge der Zeichen in der Zeichenkette x um.
$right(x,n) Liefert die letzten n Zeichen der Zeichenkette x.
$strcmp(x,y) Vergleicht die Zeichenketten x und y unter Berücksichtigung der Groß-/Kleinschreibung.
$stricmp(x,y) Vergleicht die Zeichenketten x und y ohne Berücksichtigung der Groß-/Kleinschreibung.
$strchr(x,y) Liefert die Position an der das Zeichen y zum ersten Mal in x auftritt.
$strrchr(x,y) Liefert die Position an der das Zeichen y zum letzten Mal in x auftritt.
$strstr(x,y) Liefert die Position an der die Zeichenkette y zum ersten Mal in x auftritt.
$trim(x) Entfernt Leerzeichen vom Anfang und Ende von x. Über den optionalen zweiten Parameter lässt sich das zu entfernende Zeichen ändern.
$trimLeft(x) Entfernt Leerzeichen vom Anfang von x. Über den optionalen zweiten Parameter lässt sich das zu entfernende Zeichen ändern.
$trimRight(x) Entfernt Leerzeichen vom Ende von x. Über den optionalen zweiten Parameter lässt sich das zu entfernende Zeichen ändern.
Boolesche Funktionen
$and(x,y) Liefert Wahr, wenn x und y wahr sind.
$geql(x,y) Liefert Wahr, wenn x größer gleich y ist.
$eql(x,y) Liefert Wahr, wenn x gleich y ist. Falls x und y Zeichenketten sind, findet der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung statt.
$grtr(x,y) Liefert Wahr, wenn x größer y ist.
$if(x,y,z) Wenn x Wahr ist, wird y zurück geliefert, andernfalls z.
$if2(x,y) Wenn x Wahr ist, wird x zurück geliefert, andernfalls y.
$ifgreater(a,b,x,y) Wenn a größer b ist, wird x zurück geliefert, andernfalls y.
$iflonger(a,b,x,y) Wenn a länger b Zeichen ist, wird x zurück geliefert, andernfalls y.
$isdigit(x) Liefert Wahr, wenn es sich beim Zeichen x um eine Zahl handelt.
$leql(x,y) Liefert Wahr, wenn x kleiner gleich y ist.
$less(x,y) Liefert Wahr, wenn x kleiner y ist.
$neql(x,y) Liefert Wahr, wenn x ungleich y ist.
$not(x) Liefert Wahr, wenn x nicht wahr ist.
$odd(x) Liefert Wahr, wenn die Zahl x ungerade ist.
$or(x,y) Liefert Wahr, wenn x oder y wahr sind.
Arithmentische Funktionen
$add(x,y) Addiert y zu x und liefert das Ergebnis.
$div(x,y) Dividiert x durch y und liefert das Ergebnis.
$mod(x,y) Berechnet den Rest der Division von x durch y und liefert das Ergebnis.
$mul(x,y) Multipliziert x mit y und liefert das Ergebnis.
$rand() Liefert eine Pseudozufallszahl im Bereich von 0 bis 32767.
$sub(x,y) Subtrahiert y von x und liefert das Ergebnis.
Funktionen für Variablen
$get(x) Liefert den Wert der benutzerdefinierten Variable x. Nur beim Export verfügbar.
$put(x,y) Setzt den Wert der benutzerdefinierten Variable x auf y und liefert y zurück. Nur beim Export verfügbar.
$puts(x,y) Setzt den Wert der benutzerdefinierten Variable x auf y und liefert nichts zurück. Nur beim Export verfügbar.
$getenv(x) Liefert den Wert der Umgebungsvariable x. Die spezielle Umgebungsvariable MP3TAGAPP liefert dabei das Programmverzeichnis und MP3TAGAPPDATA das Konfigurationsverzeichnis.
Funktionen für Metadaten (inkl. multiple Tagfelder)
$list(x,y,z) Liefert eine Liste aller ausgelesenen Tag-Felder einer Datei und deren Inhalte. Den Namen der einzelnen Tag-Felder wird x vorangestellt, Feldname und Werte werden durch y getrennt und z wird als Text nach dem Wert verwendet. Falls mehrere Felder mit einem Namen existieren, werden deren Werte mit ", " getrennt.
$meta(x) Liefert den Inhalt des Feldes x (z.B. $meta(artist)). Falls mehrere Felder mit diesem Namen existieren, werden die Werte mit ", " getrennt.
$meta(x,n) Liefert den n-ten Wert des Feldes x (wobei n bei 0 beginnt, z.B. $meta(artist,1)).
$meta_sep(x,sep) Liefert den Inhalt des Feldes x (z.B. $meta_sep(artist,; )). Falls mehrere Felder mit diesem Namen existieren, werden die Werte mit sep getrennt.

Beispiele

Befehl: $if2(%albumartist%,%artist%)

Erklärung: Es wird geprüft ob das Tagfeld %albumartist% vorhanden ist, wenn ja wird es ausgegeben, ansonsten %artist%.

Befehl: $replace(%artist%,',',_,'',_)

Erklärung: Es werden die Zeichen , und ' durch _ ersetzt. Man beachtet die Verwendung der Apostrophe zur Maskierung.

Zurück zur Startseite / Nach oben