# Dynamische Dateibezeichnung bei Exportdateien

**URL:** <https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854>\
**Category:** Allgemein\
**Created:** [September 8, 2012, 10:50am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854 "2012-09-08T10:50:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicmaster](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/m/ed655f/32.png) [@musicmaster](https://community.mp3tag.de/u/musicmaster)\
**Post date:** [September 8, 2012, 10:50am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/1 "2012-09-08T10:50:12Z")

</div>

Alle meine CD's haben eine RFID-Karte bekommen. Im ID3-Tag habe ich ein benutzerdefiniertes Tag **RFID** eingeführt. Das Feld im ID-3 Tag heißt: **RFID\_CARD**. Diese RFID-/Tagnummer soll Grundlage für die Playlisten meiner CD's sein. Die Playlisten werden wegen eines bestimmten Formates über Export erzeugt. Jetzt möchte ich nicht immer die RFID-Nr. als Dateinamen eingeben müssen. Dazu habe im Exportscript die erste Zeile wie folgt definiert:

```
$filename$replace(%RFID_CARD%.m3u,utf-8)

```

Im Feld Dateinamen der Exportdatei wird mir aber nur "%RFID\_CARD%.m3u" angeboten.

Dabei soll er mir die RFID-Kartennummer aus dem Feld RFID\_CARD ausgeben.  
Z.B.: 30-77-155-209-25.m3u (30-77-155-209-25 ist der Inhalt von RFID\_CARD.)

Hat jemnd einen Tipp für mich?

Gruß  
Eberhard

---

<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:** [September 8, 2012, 1:25pm UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/2 "2012-09-08T13:25:11Z")

</div>

> [@Eberhard](#):
>
> ... im Exportscript die erste Zeile wie folgt definiert:
> 
> ```
> $filename$replace(%RFID_CARD%.m3u,utf-8)
> 
> ```
> 
> Im Feld Dateinamen der Exportdatei wird mir aber nur "%RFID\_CARD%.m3u" angeboten.  
> Dabei soll er mir die RFID-Kartennummer aus dem Feld RFID\_CARD ausgeben.  
> Z.B.: 30-77-155-209-25.m3u (30-77-155-209-25 ist der Inhalt von RFID\_CARD.)  
> Hat jemnd einen Tipp für mich? Gruß Eberhard

Zuerst siehe nach bei "Mp3tag Manual/Exportkonfiguration" wie die Syntax der Export Skriptsprache richtig geschrieben wird.  
Zum Beispiel ...

**$filename($getEnv('USERPROFILE')'\Desktop\RFID.Data.txt',UTF-8)**

... wäre das die erste Zeile im Export-Skript, die den Ort und Namen der Ausgabedatei definiert.

Die Inhalte von Tag-Feldern kann man dann nacheinander ausgeben in einer Schleife über alle ausgewählten Dateien bzw. über die benannten Tag-Felder. Dafür verwendet man die Funktionen $loop() und $loopend().  
Zum Beispiel ...

**$loop(%RFID\_CARD%)%RFID\_CARD% $loopend()**

... gibt das den Inhalt des Tag-Feldes RFID\_CARD in sortierter Reihenfolge aus.

Vielleicht meinst du aber so etwas ...

**1: $filename($getEnv('USERPROFILE')'\Desktop\'%RFID\_CARD%'.txt',UTF-8)** 

**2: $loop(%RFID\_CARD%)%RFID\_CARD%  
3: $loopend()**

 

... aber ... obwohl das technisch machbar ist, glaube ich nicht, dass es sinnvoll bzw. fehlerfrei zu gebrauchen ist, weil der tatsächliche Dateiname der Ausgabedatei davon abhängt, auf welcher Datei mit welchem Tag-Feld Inhalt der Cursor stand beim Aufruf des Exportskripts.

 

DD.20120908.1723.CEST

---

<div class="post-metadata">

**Author:** ![musicmaster](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/m/ed655f/32.png) [@musicmaster](https://community.mp3tag.de/u/musicmaster)\
**Post date:** [September 10, 2012, 7:18pm UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/3 "2012-09-10T19:18:04Z")

</div>

Ich habe mich zugegebenerweise etwas schwamming (völlig unklar) ausgedrückt.

> [@](#):
>
> Zuerst siehe nach bei "Mp3tag Manual/Exportkonfiguration" wie die Syntax der Export Skriptsprache richtig geschrieben wird.  
> Zum Beispiel ...  
> $filename($getEnv('USERPROFILE')'\Desktop\RFID.Data.txt',UTF-8)  
> ... wäre das die erste Zeile im Export-Skript, die den Ort und Namen der Ausgabedatei definiert.

Genau da liegt das Problem. Leider ist das Manual nicht mit Beispielen hinterlegt. Da ich das THema Export neu anpacke ist es für mich schwer das alles zu verstehen.

Meine erste Zeile wurde jetzt modifiziert nach:

```
$filename(U:\playlists\\%RFID-CARD%.m3u,utf-8)

```

Aber leider steht durch die Angabe %RFID-CARD% im Feld **Dateiname der Exportdatei** nicht die die RFID-Nummer in dem Feld, sondern lediglich _%RFID\_CARD%.m3u_ . Also hat er den Befehl nicht auswerten können.

Wo liegt der Fehler?

Gruß Eberhard

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [September 11, 2012, 3:45am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/4 "2012-09-11T03:45:06Z")

</div>

> [@Eberhard](#):
>
> ...$filename(U:\playlists\%RFID-CARD%.m3u,utf-8)... %RFID-CARD% ... %RFID\_CARD%.m3u...Wo liegt der Fehler?
> 
> Gruß Eberhard

In dem Beispiel und deinem Text sind mindestens 2 Schreibweisen für den Variablennamen.  
Es wird wohl nur einer richtig sein.  
Du muss EXAKT den eintragen, der auch als Name in den Dateien vorkommt.

---

<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:** [September 11, 2012, 3:52am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/5 "2012-09-11T03:52:36Z")

</div>

> [@Eberhard](#):
>
> ... Meine erste Zeile wurde jetzt modifiziert nach:
> 
> ```
> $filename(U:\playlists\\%RFID-CARD%.m3u,utf-8)
> 
> ```
> 
> Aber leider steht durch die Angabe %RFID-CARD% im Feld **Dateiname der Exportdatei** nicht die die RFID-Nummer in dem Feld, sondern lediglich _%RFID\_CARD%.m3u_ . Also hat er den Befehl nicht auswerten können. Wo liegt der Fehler? Gruß Eberhard

Den Dateiname _%RFID\_CARD%.m3u_ konnte ich nicht nachvollziehen.  
Hm, gibt es Schreibfehler beim Platzhalter?  
%RFID-CARD% vs. %RFID\_CARD%

Wenn Mp3tag im Skript eine Zeichenkette entdeckt, die in Prozentzeichen eingeschlossen ist, dann nimmt Mp3tag an, dass es sich dabei um einen Platzhalter handelt.  
Mp3tag ersetzt den Platzhalter mit dem Wert aus dem Tag-Feld, das zu diesem Platzhalter passt.  
Wenn das Tag-Feld nicht existiert, dann wird auch nichts ausgegeben.  
So kann es passieren, dass zwar eine Ausgabedatei erzeugt wird, aber die hat dann zum Beispiel nur den Namen _".txt"_.

In dem Eingabefeld "Export/Dateiname der Exportdatei" zeigt Mp3tag das Argument der Funktion $filename() an aus dem Exportskript, ohne dort vielleicht verwendete Platzhalter mit einem aktuellen Wert zu ersetzen.  
Wie sollte Mp3tag an dieser Stelle den Wert von Platzhaltern im Voraus wissen?

DD.20120911.0803.CEST

---

<div class="post-metadata">

**Author:** ![musicmaster](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/m/ed655f/32.png) [@musicmaster](https://community.mp3tag.de/u/musicmaster)\
**Post date:** [September 11, 2012, 8:03am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/6 "2012-09-11T08:03:00Z")

</div>

So, jetzt habe ich hier Verwirrung genug gestiftet:

Ok - Der Schreibfehler tauchte zwar hier auf, aber richtig bezeichnet ist die Variable mit %RFID\_CARD%. Jetzt zu eurer Hilfe. Ich fange hinten an:  
@ foo\_peter: mein problem liegt **vor** und nicht **in** der loop  
@ detlev\_D:

> [@](#):
>
> Den Dateiname %RFID\_CARD%.m3u konnte ich nicht nachvollziehen.

Ich erzeuge mit dem Export eine Playlist, die von der Squeezebox gelesen und abgespielt werden können. Die "hauseigenen" PL funktionieren nicht. Da diese PL von einem Arduino mit RFID-Kartenleser aufgerufen werden, heißt die PL wie die Seriennummer der RFID-Karte. OK?

> [@](#):
>
> In dem Eingabefeld "Export/Dateiname der Exportdatei" zeigt Mp3tag das Argument der Funktion $filename() an aus dem Exportskript, ohne dort vielleicht verwendete Platzhalter mit einem aktuellen Wert zu ersetzen.  
> Wie sollte Mp3tag an dieser Stelle den Wert von Platzhaltern im Voraus wissen?

Wenn ich aber eine "hauseigene" PL aufrufe und im Setup _Playlist_ in dem Feld Playlist-Dateiname  
"U:\playlists\%RFID\_CARD%.m3u"  
eingetragen habe schlägt mir Mp3tag als Name die RFID-Nummer der CD vor. Warum das nicht bei Export? Das ist genau der Knackpunkt! Warum geht es bei den PL und nicht beim Export?

Gruß  
Eberhard

---

<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:** [September 11, 2012, 10:34am UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/7 "2012-09-11T10:34:47Z")

</div>

> [@Eberhard](#):
>
> ... Warum geht es bei den PL und nicht beim Export? ...

Das ist eine berechtigte Frage.  
Prinzipiell erfüllen die beiden Dialogfelder denselben Zweck ...  
(Setup/Playlist) "Dialog zur Überprüfung des Dateinamen"  
... und ....  
(Export) "Dateiname der Exportdatei".

Nur bei "Dateiname der Exportdatei" fehlt die automatische Aktualisierung des angezeigen Wertes.  
Du kannst ja eine Fehlermeldung machen.  
Das müsste eigentlich schnell repariert werden können.

DD.20120911.1434.CEST

---

<div class="post-metadata">

**Author:** ![musicmaster](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/m/ed655f/32.png) [@musicmaster](https://community.mp3tag.de/u/musicmaster)\
**Post date:** [September 11, 2012, 2:59pm UTC](https://community.mp3tag.de/t/dynamische-dateibezeichnung-bei-exportdateien/13854/8 "2012-09-11T14:59:21Z")

</div>

Hallo DelevD,

ich bin offensichtlich zu blöd gleich beim ersten Mal richtig zu formulieren. Du hast es kurz und kanckig so dargestellt, dass ich sogar begriffen habe, was ich wollte... ![:w00t:](https://community.mp3tag.de/uploads/default/original/1X/cb01eca72fe9339ff6f3ec9f1e3c5fe002be0f0a.gif ":w00t:")

> [@](#):
>
> Du kannst ja eine Fehlermeldung machen.

Werd' ich gleich heute machen. Danke!  
Eberhard
