Filter als Vorstufe zur Korrektur von Dateinamen

Ich habe mir folgenden Filterausdruck gebastelt, den ich mal zum "Korrekturlesen" hier einstelle:

"$ifgreater($strstr(%_filename%,$validate(%album%,)),0,yes,no)" IS yes AND "$if($eql(%album%,%albumartist%),yes,no)" IS no AND "$if($eql(%album%,%title%),yes,no)" IS no

Hintergrund:
Mein normaler Formatstring zur Dateibenennung lautet
[$num(%track%,2) - ]%artist% - %title%.
Versehentlich wurde anscheinend in der Vergangenheit auch mal der Formatstring:
[$num(%track%,2) - ]%album% - %title%
verwendet, wie ich zufällig bei einzelnen Dateien festgestellt habe.

Dies möchte ich jetzt berichtigen und per Filter feststellen, welche Dateinamen den Namen des Albums enthalten und von denen die ausschließen, bei denen ALBUMARTIST und ALBUM sowie ALBUM und TITLE nicht gleichlautend sind, um die Anzeige und somit eine Berichtigungsaktion auf tatsächlich betroffene Dateien zu beschränken.
Wäre der Filter auch anders und vielleicht "eleganter" umzusetzten (bin halt lernbegierig)? :slightly_smiling_face:

Wenn du überprüfen willst, ob der vorgefundene Dateiname dem beabsichtigten Muster entspricht, dann wäre doch ein Vergleich
$eql(%_filename%,$validate('[$num(%track%,2) - ]%artist% - %title%')
am einfachsten, finde ich.

Hm. Sieht eigentlich gut aus, aber hiermit bekomme ich kein Ergebnis
"$if($eql(%_filename%,$validate('[$num(%track%,2) - ]%artist% - %title%',),yes,no)" IS no
bekomme ich kein Ergebnis, auch nicht mit "yes".

Muss wohl mit weniger Anführungsstrichen werden zu
"$if($eql(%_filename%,$validate([$num(%track%,2) - ]%artist% - %title%,),yes,no)" IS no

So klappt es leider auch nicht.

es fehlt 1 Klammer

"$if($eql(%_filename%,$validate([$num(%track%,2) - ]%artist% - %title%,)),yes,no)" IS no

1 Like

Danke. So klappt es jetzt. Neben dem geschilderten Fehler sind auch einige andere Fehler dadurch ans Licht gekommen.