bedingtes Cover exportieren

Ich möchte nur von Track 1 das Cover exportieren. Wenn keines vorhanden ist, soll nicht exportiert werden. Wenn eines vorhandes ist soll es als "_cover.*" exportiert werden. Alle anderen Tracks des Ordner sollen übersprungen werden. Dazu wollte ich folgendes benutzen:
$if(x,y,z) wenn x Wahr ist, wird y zurück geliefert, andernfalls z.

Ich habe folgende Aktion daraus gebildet:
$if($eql($num(%track%,2),01),_cover.jpg,)
$eql($num(%track%,2),01 habe ich verwendet, weil der Track auch 1, 01 oder 1/10 heißen kann.

Leider funktioniert es nicht. Ich erhalte auch .jpg, (1).jpg (2).jpg, wenn andere Tracks andere Cover enthalten.

Wer hat eine Lösung?

und wenn du zuerst einfach nach track 1 filterst? Dann stehen in der Liste alle nur die 1. tracks ... und von denen kann man ja dann leicht die folders exportieren.

allerdings funktioniert das nur, wenn auch ein erster track da ist. eine plausibilitätscheck, ob auch track 2 eines albums sinnvoll wäre ... oder noch ganz andere ... das wäre spannend. Nur da mp3tag ja nicht weiß, welches der erste track ist... sehe ich schwarz.

Manfred, die Aktion "Album-Cover exportieren" lässt sich für die Entscheidung, ob exportieren oder nicht, via Skriptsprache nicht steuern, denn die Aktion exportiert immer, wenn ein Bild in einer Datei vorhanden ist. Als Anwender hat man dabei nur die Möglichkeit, den Export-Dateinamen anzupassen.

'ohrenkino' hat in seinem Beitrag zuvor die Benutzung des Filters vorgeschlagen und ich denke, das ist die praktikable Lösung für deine Fragestellung.
Filter = "$num(%TRACK%,1)" IS 1

DD.20110220.0845.CET

Filter = "$num(%TRACK%,1)" IS 1
DD.20110220.0845.CET
[/quote]
Vielen Dank für die grundlegende Erläuterung. Ich werde also filtern. Funktioniert der Filter auch, wenn der Track 001, 01 oder 1/10 heißt?.

Hehe Manfred, du bist doch sonst so ein Tüftler.
Ich bin mir ziemlich sicher, dass der angebotene Filterausdruck funktioniert, denn dafür ist die Funktion $num() ja wohl gemacht geworden.
Was hat denn der Test bei dir ergeben? Sollte ich zweifeln müssen?

DD.20110220.1655.CET

Der Test hat ergeben: Du hast Recht. Daran bestand kein Zweifel. Ich hätte schon kurz nach meinem Beitrag diese Info hinzufügen sollten. Ich bin jedoch aus anderen Gründen davon abgekommen.

Für eine andere Aufgabe brauche ich einen Filter, der alle Datensätze anzeigt, deren Track vom Muster $num(%track%,2) abweicht. Also bspw. 0001, 1, 1/10 usw. Wer weiss Rat?

Vielleicht

"$if($eql(%track%,$num(%track%,2)),1,0)" IS "1"

Funktioniert einwandfrei, wenn ich NOT davor setzte. Vielen Dank

Weil es ja derzeit nicht zu verhindern ist, dass Mp3tag mit der Aktion "Album-Cover exportieren" immer alle Bilddateien ausgibt, kann man es trotzdem so organisieren, dass die erwünschten Ausgabedateien in den jeweiligen Trackordnern erzeugt werden, aber die unerwünschten Ausgabedateien automatisch alle an einem einzigen Ort gesammelt werden, wo sie anschließend in einem Rutsch manuell gelöscht werden können.

Dieser eine Sammelort kann z. B. der Benutzer bezogene Ordner für temporäre Dateien sein, der vom System üblicherweise über die Systemvariable %TEMP% zur Verfügung gestellt ist.
Leider stellt Mp3tag derzeit diese Systemvariable in der eigenen Skriptsprache nicht zur Verfügung, so dass das automatisierte Erzeugen von Pfadnamen zu diesem Ordner nicht möglich ist.
(Ebenso sind andere Ordner des Benutzers im System sowie auch der Papierkorb aus Mp3tag heraus nicht erreichbar, z. B. HOMEDRIVE, HOMEPATH, USERPROFILE, USERNAME, USERDOMAIN, COMSPEC usw. - schade eigentlich.)

Als Ersatz bietet sich an, den gerade aktuellen Mp3tag Arbeitsordner zu benutzen, der aus der Mp3tag Systemvariablen %_workingdir% auszulesen ist.

Oder man schreibt in den Formatstring anstelle von %_workingdir% einen fest bestimmten Ordner wie zum Beispiel 'C:\TEMP'.

Für den Zweck, nur das Cover aus dem Track Nr. 1 zu exportieren, kann man den folgenden Formatstring verwenden.
Das vorherige Setzen des Mp3tag Filters ist nicht unbedingt nötig, weil die notwendige Selektion mit der $if-Anweisung im Formatstring erfolgt.

$if($eql($num(%TRACK%,1),1),'Bilddateiname',%_workingdir%'\Löschdateiname')

Ein praktisches Beispiel ...

Bilddateiname ist:

'_Cover.'$regexp(%_path%,'[:\\\\ ,-.]',)

Löschdateiname ist:

%_workingdir%'\!Erasable!')

Aktion "Album-Cover exportieren"
Formatstring für Cover-Dateiname:

$if($eql($num(%TRACK%,1),1),'_Cover.'$regexp(%_path%,'[:\\\\ ,-.]',),%_workingdir%'\!Erasable!')

Duplikate Exportieren:

DD.20110317.1350.CET

... da kommt dann leider sowas 'raus: _Cover.zmAgesmBaa9RPJInterprBBigCountry1993TheBuffaloSkinners0101Alone;geschrvSt
uartAdamsonmp3.jpg
oder
_Cover.zmAgesmBaa9RPJInterprBBigCountry1994TheBestofBigCountry0101HarvestHome;ge
schrvStuartAdamsonmp3.jpg

Ich danke für Deine Mühe. Ich bleibe bei der "Filterlösung": Filter = "$num(%TRACK%,1)" IS 1
Ich muss zwar etwas aufpassen, aber es funktioniert.

Manfred, was du hier wiedergibst, das ist genau das, was in dem Beispiel gezeigt ist.
Und wie man anhand deiner Rückmeldung feststellen kann, hat es auch völlig korrekt funktioniert.
Den regexp Ausdruck bei der Bildung des Dateinamens habe ich nur benutzt, um sicherzustellen, dass keine "dekorierten" oder numerierten Dateinamen erzeugt werden.
Aber das kann man ja so machen wie man will. Das hast du offensichtlich als "Soll" verstanden.
Für mich ist es ein praktisches Beispiel - für dich eher ein unpraktisches Beispiel.

Das Beispiel musst du selbstverständlich für deinen Zweck und Geschmack anpassen!!!

Wenn man alles nur einfach abschreibt wie man es angeboten bekommt, und das Wesentliche (nämlich das Sammeln der überflüssigen Exporte an nur einem Ort zum einfacheren Löschen) nicht nachvollziehen kann, dann ist alle gutgemeinte Hilfe zwecklos. Schade eigentlich.
Jedenfalls weiß ich jetzt wie deine Pfadstruktur in etwa aussieht. :wink:

DD.20110318.0612.CET

Ja, ich finde es auch schade, dass ich Dein Beispiel nicht durchschaut habe. Ich weiss Deine Hilfe und Mühe sehr zu schätzen. Im Augenblick kann ich mich aus Zeitgründen damit nicht länger beschäftigen. Ich komme zu einem späteren Zeitpunkt darauf zurück.

Danke nochmals!