# Dateiname-\>Tag ergibt doppelte bzw. nicht ersetzte Tags

**URL:** https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544
**Category:** Allgemein
**Created:** [December 16, 2009, 1:46am UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544 "2009-12-16T01:46:14Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![kein\_schwabe](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/k/7ab992/32.png) [@kein\_schwabe](https://community.mp3tag.de/u/kein_schwabe)
#### Post date: [December 16, 2009, 1:46am UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/1 "2009-12-16T01:46:14Z")

</div>

Dateiname-\>Tag ergibt doppelte bzw. nicht ersetzte Tags

ich möchte mein archiv taggen, die meisten files befinden sich in ordnern, schematische datei- und Ordnernamen. ich benutze "Dateiname-\>Tag" z.b. mit dem string:  
%artist% (%dummy%) - %album% [%PUBLISHER%] {%COMMENT%} (%date%)\%artist% - %album% - %TRACKNUMBER% - %TITLE% (%REMIXED BY%)

2 probleme tauchen bisher dabei auf:

1. manchmal entfernt mp3tag den zb YEAR tag nicht, sondern schreibt bloß den neuen wert dazu
2. manchmal entfernt mp3tag den zb YEAR tag nicht und schreibt den neuen wert nicht dazu

wie kann ich meinen string verändern, damit er automatisch schon existierende tags ersetzt?  
habe ne weile gesucht, nix zum thema gefunden.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [December 16, 2009, 6:07am UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/2 "2009-12-16T06:07:30Z")

</div>

> [@kein\_schwabe](#):
>
> ... ich benutze "Dateiname-\>Tag" z.b. mit dem string:  
> %artist% (%dummy%) - %album% [%PUBLISHER%] {%COMMENT%} (%date%)\%artist% - %album% - %TRACKNUMBER% - %TITLE% (%REMIXED BY%)  
> ... probleme tauchen ... auf ...

Du benutzt in dem Formatstring eckige Klammern, welche aber in Mp3tag eine besondere Funktion haben (siehe Mp3tag Hilfe). Die besondere Funktion der eckigen Klammern kann unterdrückt werden, indem man sie in einfache Apostrophe einschließt, so '[' und so ']'.

DD.20091216.0806.CET

---

<div class="post-metadata">

### Author: ![dano](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dano/32/6_2.png) [@dano](https://community.mp3tag.de/u/dano)
#### Post date: [December 16, 2009, 9:20am UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/3 "2009-12-16T09:20:00Z")

</div>

Bei "Dateiname-\>Tag" haben die eckigen Klammern diese Funktion nicht.

Hilfreich ist immer wenn man angibt was für Audiodateien und Tagformate man verwendet.

Und wieso ist im String %date% aber danach schreibst du von Year?

---

<div class="post-metadata">

### Author: ![kein\_schwabe](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/k/7ab992/32.png) [@kein\_schwabe](https://community.mp3tag.de/u/kein_schwabe)
#### Post date: [December 16, 2009, 12:46pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/4 "2009-12-16T12:46:49Z")

</div>

danke euch beiden.

> [@](#):
>
> Bei "Dateiname-\>Tag" haben die eckigen Klammern diese Funktion nicht.

ja, das funktioniert auch soweit. @DetlevD: danke trotzdem für den tip, da wär ich bestimmt später drüber gestolpert, weil labels bei mir in eckigen Klammern sind.

> [@](#):
>
> Und wieso ist im String %date% aber danach schreibst du von Year?

![:book:](https://community.mp3tag.de/uploads/default/original/1X/0036d5b68f6226c53f6c68abfd0a7b8096fd4505.gif ":book:")

ooops, erwischt ![:rolleyes:](https://community.mp3tag.de/uploads/default/original/1X/3a79e8b0b7d169b30216785521d7c6f4f895c421.gif ":rolleyes:") ...so klapps

%artist% (%dummy%) - %album% [%PUBLISHER%] {%COMMENT%} (%year%)\%artist% - %album% - %TRACKNUMBER% - %TITLE% (%REMIXED BY%)

daraus ist auch das problem entstanden, hatte date+year getaggt, foobar listet beides unter "date"

aber ein anderes problem bleibt, könnt ihr mir bitte dazu was sagen? es gibt files, die haben (z.b.) YEAR schon getaggt, da möchte ich nicht, daß der bestehende tag überschrieben wird. kann ich da irgendeine syntax (vor z.b. (%year%)) schreiben, damit der tag im fall nicht überschrieben wird

---

<div class="post-metadata">

### Author: ![ci3nt](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@ci3nt](https://community.mp3tag.de/u/ci3nt)
#### Post date: [December 16, 2009, 4:07pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/5 "2009-12-16T16:07:14Z")

</div>

Das geht mit Sicherheit einfacher, aber das hier sollte gehen:  
Aktion Tag-Felder importieren:  
Quellformat: $if(%year%,$replace($regexp(%\_directory% ++ %\_filename%,(._? - ._? )('('._?)(')' '++' ._),$1 ersetze%year%$3),ersetze,'('),%\_directory% ++ %\_filename%)  
Formatstring: %artist% (%dummy%) - %album% [%PUBLISHER%] {%COMMENT%} (%year%) ++ %artist% - %album% - %TRACKNUMBER% - %TITLE% (%REMIXED BY%)

An die anderen: Wie kann ich im 3.Teil von $regexp eine offene Klammer darstellen? Ich habe ( ; '(' ; '(' ; "(" ; ( probiert und das mit $replace zu umgehen scheint unnötig zu sein.

mfG  
gnor

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [December 16, 2009, 4:33pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/6 "2009-12-16T16:33:56Z")

</div>

> [@gnor](#):
>
> ... An die anderen: Wie kann ich im 3.Teil von $regexp eine offene Klammer darstellen? ...

Frage mich nicht wieso ...  
$regexp('abc','.(.).','$1(')  
von: abc  
zu: b(

DD.20091216.1833.CET

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [December 16, 2009, 4:43pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/7 "2009-12-16T16:43:38Z")

</div>

> [@kein\_schwabe](#):
>
> danke euch beiden.  
> ja, das funktioniert auch soweit. @DetlevD: danke trotzdem für den tip, da wär ich bestimmt später drüber gestolpert, weil labels bei mir in eckigen Klammern sind.

![<_<](https://community.mp3tag.de/uploads/default/original/1X/5996dbb474c88b8f9fc49f09dc3858d081055a2d.gif "<\_<") Ooops, überall diese Ausnahmen, aber gut, jetzt weißt du es ja für den anderen Fall der Fälle.

> [@kein\_schwabe](#):
>
> ... aber ein anderes problem bleibt, könnt ihr mir bitte dazu was sagen? es gibt files, die haben (z.b.) YEAR schon getaggt, da möchte ich nicht, daß der bestehende tag überschrieben wird. kann ich da irgendeine syntax (vor z.b. (%year%)) schreiben, damit der tag im fall nicht überschrieben wird

Du kannst beim Importieren ein temporäres Feld benutzen, z.B. TEMP\_YEAR, in das du zunächst alle Werte importierst. Dadurch kannst du in der Listenansicht die Daten visuell vergleichen, wenn du dir eine Spalte für TEMP\_YEAR angelegt hast, ansonsten in der erweiterten Tagfeld Ansicht.

Nach dem Import formatierst du mit einer Aktion "Tagfeld formatieren" das Feld YEAR in Abhängigkeit von seinem eigenen Inhalt mit dem Inhalt von TEMP\_YEAR oder nicht.  
Tagfeld formatieren : YEAR  
Formatstring: $if2(%YEAR%,%TEMP\_YEAR%)

Wenn alles getan ist, dann kannst du das Feld TEMP\_YEAR entfernen.

DD.20091216.1845.CET

---

<div class="post-metadata">

### Author: ![kein\_schwabe](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/k/7ab992/32.png) [@kein\_schwabe](https://community.mp3tag.de/u/kein_schwabe)
#### Post date: [December 16, 2009, 10:33pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/8 "2009-12-16T22:33:43Z")

</div>

@gnor: uiii - das klappt sogar! seltsamerweise nicht beim 2. mal. werd ich morgen nochmal angehen. leider hat man bei "Aktion Tag-Felder importieren" keine Vorschau aufs ergebnis (oder weiß ich nur nichts davon?), deshalb hatte ich mich für "Dateiname-\>Tag" interessiert. kann ich deinen Quellformat String immer benutzen, wenns um den year tag geht? oder ändert sich der wieder, wenn sich der formatstring ändert? bei deinem Quellformat String sehe ich momentan beim besten willen noch nicht durch.  
leider ist die hilfe Scripting functions in englisch. und zum thema "Aktion Tag-Felder importieren" hab ich darin nichts gefunden.

@DetlevD: falls ich die quellformatsprache nicht demnächst kapiere, werd ichs so ähnlich machen wie du vorgeschlagen hast.

---

<div class="post-metadata">

### Author: ![kein\_schwabe](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/k/7ab992/32.png) [@kein\_schwabe](https://community.mp3tag.de/u/kein_schwabe)
#### Post date: [December 17, 2009, 10:17am UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/9 "2009-12-17T10:17:43Z")

</div>

@gnor: es scheint, der Quellformat String macht zwar bei **year** alles richtig, wenn aber z.b. artist o. album fehlt, wird das nicht eingetragen.

gibt es eine taugliches tutotial auf deutsch?

---

<div class="post-metadata">

### Author: ![ci3nt](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@ci3nt](https://community.mp3tag.de/u/ci3nt)
#### Post date: [December 17, 2009, 2:27pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/10 "2009-12-17T14:27:19Z")

</div>

Mein Quellformat-String setzt sich folgendermaßen zusammen:  
Außen ist eine if-Bedingung - $if(%year%,y,z) d.h. wenn %year% vorhanden ist, mache das, was bei y steht anderfalls z. Falls year also nicht existiert (also z geliefert wird), liefert er das Verzeichnis %\_directory% und den Dateinamen %\_filename% mit ++ verbunden.  
Bei y wird durch einen regulären Ausdruck das Jahr im Verzeichnis durch das Jahr im Tag ersetzt.

Der Formatstring schließlich beschreibt, wie der Quellformatstring aufgebaut ist und importiert die Teilstrings in die Tag-Felder.

Die if-Bedingung überprüft nur auf %year%, deswegen macht er beim Interpreten usw. nichts.  
Wenn du diese auch noch im String berücksichtigen willst, müsstest du mehrere if-Bedingungen schachteln. Einfacher ist da die Lösung von DetlevD, die das in mehreren Teilschritten macht.

Die Hilfe war mal auf Deutsch. Vielleicht gibt es sie in einer älteren Version von Mp3tag noch.

mfG  
gnor

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [December 17, 2009, 6:47pm UTC](https://community.mp3tag.de/t/dateiname-tag-ergibt-doppelte-bzw-nicht-ersetzte-tags/9544/11 "2009-12-17T18:47:28Z")

</div>

> [@kein\_schwabe](#):
>
> ... @DetlevD: falls ich die quellformatsprache nicht demnächst kapiere, werd ichs so ähnlich machen wie du vorgeschlagen hast.

Ich würde es machen nach dem Prinzip "keep it simple".

Anfang Aktionengruppe **20091216.kein schwabe**

Aktion #1  
_Aktionstyp 7:_ **Tagfelder importieren**  
_Quellformat:_ **%\_directory%**  
_Formatstring:_ **%TEMP\_ARTIST%÷(%DUMMY%)÷-÷%TEMP\_ALBUM%÷[%TEMP\_PUBLISHER%]÷{%TEMP\_COMMENT%}÷(%TEMP\_YEAR%)**

Aktion #2  
_Aktionstyp 7:_ **Tagfelder importieren**  
_Quellformat:_ **%\_filename%**  
_Formatstring:_ **%TEMP\_ARTIST%÷-÷%TEMP\_ALBUM%÷-÷%TEMP\_TRACKNUMBER%÷-÷%TEMP\_TITLE%÷(%TEMP\_REMIXED÷BY%)**

Aktion #3  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **ARTIST**  
_Formatstring:_ **$if2(%ARTIST%,%TEMP\_ARTIST%)**

Aktion #4  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **ALBUM**  
_Formatstring:_ **$if2(%ALBUM%,%TEMP\_ALBUM%)**

Aktion #5  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **PUBLISHER**  
_Formatstring:_ **$if2(%PUBLISHER%,%TEMP\_PUBLISHER%)**

Aktion #6  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **COMMENT**  
_Formatstring:_ **$if2(%COMMENT%,%TEMP\_COMMENT%)**

Aktion #7  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **YEAR**  
_Formatstring:_ **$if2(%YEAR%,%TEMP\_YEAR%)**

Aktion #8  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **TRACKNUMBER**  
_Formatstring:_ **$if2(%TRACKNUMBER%,%TEMP\_TRACKNUMBER%)**

Aktion #9  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **TITLE**  
_Formatstring:_ **$if2(%TITLE%,%TEMP\_TITLE%)**

Aktion #10  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld:_ **REMIXED÷BY**  
_Formatstring:_ **$if2(%REMIXED÷BY%,%TEMP\_REMIXED÷BY%)**

Aktion #11  
_Aktionstyp 9:_ **Tagfelder entfernen**  
_Folgende Tagfelder entfernen (mit Semikolon getrennt):_ **TEMP\_ARTIST;TEMP\_ALBUM;TEMP\_PUBLISHER;TEMP\_COMMENT;TEMP\_YEAR;TEMP\_TRACKNUMBER;TE  
MP\_TITLE;TEMP\_REMIXED÷BY**

_Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen._  
Ende Aktionengruppe **20091216.kein schwabe** (11 Aktionen)

DD.20091217.2047.CET
