# Anfängerhilfe zu Skriptbefehlen und Ordnerstruktur

**URL:** https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223
**Category:** Allgemein
**Created:** [December 12, 2012, 12:23pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223 "2012-12-12T12:23:02Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![FredHermann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/f/b9bd4f/32.png) [@FredHermann](https://community.mp3tag.de/u/FredHermann)
#### Post date: [December 12, 2012, 12:23pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/1 "2012-12-12T12:23:02Z")

</div>

HalliHallo liebe mp3tag-Freunde,

ich wollte mal meine Aktionengruppe und Ordnerstruktur für wissbegierige vorstellen. Einmal tue ich das um weitere Anregungen zu möglichen Ordnerstrukturen zu geben und zu diskutieren. Vor allem möchte ich aber für Neulinge und Anfänger Aktionen und Skriptbefehle genauer erklären, da ich in meiner Anfängerphase festgestellt habe, dass sich das Einarbeiten in die Skriptbefehle von mp3Tag als schwierig gestalten kann und ich die Hilfe dazu als ungenügend empfand, insbesondere wenn man noch nie etwas mit Programmierung oder dergleichen zu tun hatte. Dabei fand ich es immer hilfreich, wenn Beispiele genau erläutert wurden und möchte das gerne im Folgenden tun. Des Weiteren würde ich mich sehr über Anregungen bzw. Optimierungen zu meiner Aktionengruppe freuen.  
Auch wenn ich hier versuche den Umgang mit der Skriptsprache näher zu bringen bleibt es natürlich nicht aus sich mit der Hilfe zu beschäftigen und einzelne Befehle nochmal nach zu lesen.

Ordnerstruktur

Meine Aktionengruppe ist natürlich an meine Ordnerstruktur angepasst, die ich zuerst ein wenig erläutern will.  
Grundsätzlich habe ich meine Musik auf einem Netzlaufwerk alphabetisch nach Interpreten sortiert.

X:#...  
X:\A...  
X:\B...  
…

Da ich leider nicht nur komplette Alben habe, befinden sich Einzeltitel immer im Artist-Ordner. Des Weiteren befinden beim Artist noch die Ordner für Alben. Wenn es mehrere CDs in einem Album gibt, dann gibt es zusätzlich noch die dazugehörigen Unterordner für CD 1 usw. Featuring-Artists werden weiter nicht berücksichtigt und landen im Ordner des Haupt-Artists.  
Die Ordnerstruktur sieht also letztendlich so aus:

X:\A\Artist\Artist – Titel.ext  
X:\A\Artist\Artist feat. Artist2 – Titel.ext  
X:\A\Artist\Album## - Artist – Titel.ext  
X:\A\Artist\Album\CD 1## - Artist – Titel.ext

In dem Album Ordner befinden sich die dazugehörigen Cover nach dem Schema. Die Covers selbst lade ich mit AlbumArtDownloader runter, der die Covers automatisch so benennt und im richtigen Verzeichnis speichert.

Front - %album%.ext  
Back - %album%.ext

Bei vollständig getaggten Titeln/Alben kann mp3Tag meine Ordnerstruktur mit Hilfe von folgendem Algorithmus (Tag --\> Dateiname) selbstständig erzeugen. Der sieht erst mal riesig aus, erfüllt aber alles um diese Ordnerstruktur zu erzeugen.

**EDIT:**  
Die Einordnung von Compilation/Samplern funktioniert jetzt auch. Dafür benutze ich im Album-Artist den Ausdruck „Various Artist“. Der Album-Artist ist bei mir stets dem normalen Artist übergeordnet.  
Für Compilations habe ich einen Extraordner. Compilations sind bei mir z.B. Remix-CDs deren Titel nicht durch eine Pause voneinander getrennt sind (überwiegend bei elektronischer Musik). Bravo-Compilations usw. werden grundsätzlich einzeln in die jeweiligen Interpreten einsortiert.

**[feat. vs.]**  
**X:**  
**$if($eql(%albumartist%,'Various Artist'),Compilation,$if($or($isdigit($left(  
$if2(%albumartist%,%artist%),1)),$eql($left($if2(%albumartist%,%artist%),1),!)),#,$if($eql(  
$caps($left($if2(%albumartist%,%artist%),1)),Ä),A,$if($eql($caps($left(  
$if2(%albumartist%,%artist%),1)),Ö),O,$if($eql($caps($left($if2(%albumartist%,%artist%),1))  
,Ü),U,$caps($left($if2(%albumartist%,%artist%),1)))))))**  
**$if($eql(%albumartist%,'Various Artist'),,$if($eql($strstr($if2(%albumartist%,%artist%),' feat. '),0),$if($eql($strstr($if2(%albumartist%,%artist%),' vs. '),0)  
,$if2(%albumartist%,%artist%),$left($if2(%albumartist%,%artist%),$strstr(  
$if2(%albumartist%,%artist%),' vs. ')))  
,$left($if2(%albumartist%,%artist%),$strstr($if2(%albumartist%,%artist%),' feat. '))))**   
**$if2(%album%,)**  
**$if($and(%album%,%discnumber%),CD $num(%discnumber%,),)**  
**$if($and(%album%,%track%),$num(%track%,2) - ,)%artist% - %title%**  
**[feat. vs.]**

**Erklärung/ Erläuterung zum Code:**

1. **[feat. vs.]** --\> Bezeichnung des Codes --\> eckige Klammern werden nicht beachtet
2. **X:** --\> Netzlaufwerk meiner Musik
3. **EDIT:**  
Dieser Ausdruck ist um einiges größer geworden, da nun Artists mit Ä bei A usw. einsortiert werden. Im Groben gesagt, ist dies eine Verschachtelung von mehreren IF-Anweisungen

4. **EDIT:**  
Auch dieser Teil ist um einiges größer geworden, da ich wieder den Album-Artist dem normalen Artist vorziehe. Desweiteren wird nun feat.-Artist bzw. vs.-Artist gleichzeitig behandelt und entfernt  
Dies hat zur Folge, dass bei der alphabetischen Sortierung immer nur ein Ordner mit dem Haupt-Artist vorhanden ist  
X:\Musik\A\ABBA\ \<-- gibt es in der Ordnerstruktur  
X:\Musik\A\ABBA feat. Artist2\ \<-- gibt es nicht in der Ordnerstruktur

5. Album-Ordner **$if2(%album%,)** --\> WENN Album vorhanden ist --\> DANN schreibe Album --\> SONST schreibe NICHTS Hier wird nun auch bei Compilation/Samplern das Album geschrieben
6. CD-Ordner **$if($and(%album%,%discnumber%),CD $num(%discnumber%,),)** --\> WENN Album UND eine CD-Nummer vorhanden sind [$and(%album%,%discnumber%)] --\> DANN schreibe CD und die CD-Nummer im Nummernformat mit beliebig vielen Ziffern [$num(%discnumber%,),)]
7. Dateiname **$if($and(%album%,%track%),$num(%track%,2) - ,)%artist% - %title%** --\> WENN Album UND Tracknummer vorhanden sind [$and(%album%,%track%)] --\> DANN schreibe 2-stellige Tracknummer [$num(%track%,2) -] --\> SONST schreibe NICHTS --\> Schreibe Artist – Titel [%artist% - %title%]

Aktionengruppe

Nun zu meiner lang erarbeiteten Aktionengruppe, die ich euch auch gerne zum Download bereitstellen möchte.  
Grundsätzlich lasse ich immer den ersten Buchstaben eines Wortes großschreiben. Ansonsten besteht die Gruppe natürlich aus vielen Ersetzen-Funktionen um abweichende Schreibweisen zu korrigieren.

1. Artist – The Sun (Goes Down).ext  
Artist – The Sun (Goes Down) [Club Mix].ext

2. _Aktionstyp:_ **Tag-Felder formatieren**  
_Feld:_ **ARTIST**  
_Formatstring:_ **$trimRight(%artist% $mid(%title%,$strstr(%title%,'feat.'),$len(%title%)),')'|' '\*)**

3. _Aktionstyp:_ **Ersetzen mit regulären Ausdrücken**  
_Feld:_ **TITLE**  
_Regulärer Ausdruck:_ **\s?(?(feat.?)(\w|\s|&)\*)?**  
_Treffer ersetzen durch:_

  
Hiermit belasse ich erst mal meine Erklärungen zu den Skriptbefehlen.  
Ich denke und hoffe, dass die Erläuterungen vernünftig/verständlich formuliert wurden, sodass dies für zukünftige mp3Tag Anfänger eine gute Hilfe für Skriptbefehle darstellt.  
Ansonsten war es das erst mal von mir. Für Fragen, Anregungen, Hinweise, Verbesserungen und Optimierungen bin ich natürlich jederzeit zu haben.

Mit freundlichen Grüßen

FredHermann

[FredHermann.mta](https://community.mp3tag.de/uploads/default/original/2X/0/0e98197f657eff9bfdae988deccba0f02aba78dd.mta) (6.83 KB)

---

<div class="post-metadata">

### Author: ![browniiie](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/b/b77776/32.png) [@browniiie](https://community.mp3tag.de/u/browniiie)
#### Post date: [December 29, 2012, 10:02pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/2 "2012-12-29T22:02:59Z")

</div>

Hey,  
ich benutze Teile deiner Ordnung und wollte gerne wissen, ob es bei der Aktion:

> [@](#):
>
> Erweiterung im Titel  
> Erweiterungen im Titel wie Mix, Remix, Edit usw. lasse ich immer in eckigen Klammern schreiben. Normale Ausdrücke in runden Klammern die zum Titel gehören, bleiben auch in runden Klammern.
> 
> Artist – The Sun (Goes Down).ext  
> Artist – The Sun (Goes Down) [Club Mix].ext
> 
> Dafür habe ich mir die folgende Funktion erarbeitet.
> 
> Aktionstyp: Ersetzen mit regulären Ausdrücken  
> Feld: TITLE  
> Regulärer Ausdruck: (((\w|\s)_(mix|Edit)(\w|\s)_))  
> Treffer ersetzen durch: [$1]  
> Groß-/Kleinschreibung berücksichtigen
> 
> Erklärung/ Erläuterung  
> Suche nach dem Ausdruck im Titel  
> --\> mit einer offenen runden Klammer [)]  
> --\> mit Zeichen [\w] ODER [|] Leerzeichen [\s], die beliebig oft auftreten [(\w|\s)_]  
> --\> dann kommt irgendwann mix ODER Edit [(mix|Edit]  
> --\> dann wieder beliebig viele (Leer-) Zeichen [(\w|\s)_]  
> --\> und zum Schluss eine geschlossene runde Klammer [)]  
> Runde Klammern haben die Funktion Ausdrücke zu separieren, wenn sie als Zeichen ansich gemeint sind muss ein \ davorstehen  
> Jedes Mal, wenn ein Ausdruck separiert wurde, bekommt dieser eine fortlaufende Nummer  
> ((\w|\s)_(mix|Edit)(\w|\s)_) \<-- Ausdruck bekommt die Nummer 1  
> Wenn dahinter ein weiterer Ausdruck in Klammern stehen würde, würde dieser die 2 bekommen usw.  
> Dieser Ausdruck soll geändert werden in  
> --\> offene eckige Klammer [  
> --\> Aufrufen des gewählten Ausdrucks [$1]  
> --\> geschlossene eckige Klammer ]

auch einen Weg gibt Klammern mit Zeichen einzubinden.  
Bei mir funktioniert es nicht wenn ich die Aktion bei folgenden Titeln anwende:

Shake It (Steven Quarré & Morris Mavado Mix)  
Mercury And Solace (Bt 12" Mastermix)

Lässt sich da noch etwas verändern?

Ansonsten war mir der Beitrag eine große Hilfe! Vielen Dank auf diesem Wege.

Alle anderen sind natürlich auch gefragt! 😉

---

<div class="post-metadata">

### Author: ![anon40879270](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@anon40879270](https://community.mp3tag.de/u/anon40879270)
#### Post date: [December 29, 2012, 11:32pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/3 "2012-12-29T23:32:25Z")

</div>

> [@FredHermann](#):
>
> Dieser Algorithmus funktioniert natürlich nicht bei komplett unterschiedlichen Artists in einem Album. Für Compilations habe ich daher einen Extraordner.

Zunächst vielen Dank für die zahlreichen Beispiele. Ich habe mir die MTA-Datei heruntergeladen und auch schon einige Beispele verwendet. Ich habe eine ähnliche Ordnerstruktur, allerdings etwas einfacher aufgebaut, da ich nur komplette Alben verwalte. Auch bei mir erfolgt eine sortenreine Trennung zwischen Interpreten-Alben und Sampler-Alben. Die niedrigste Verzeichniseinheit ist daher das Album. Innerhalb dieses Ordner sind die Tracks als Dateien numerisch geordnet wie auf der Original-CD. Meine Ordnerstruktur habe ich hier ausführlich beschrieben. Wichtig sind für mich zwei Punkte

- keine Redundanzen
- einheitliche Verzeichnistiefe.

---

<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 30, 2012, 8:25am UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/4 "2012-12-30T08:25:17Z")

</div>

> [@browniiie](#):
>
> ... Bei mir funktioniert es nicht wenn ich die Aktion bei folgenden Titeln anwende:  
> Shake It (Steven Quarré & Morris Mavado Mix)  
> Mercury And Solace (Bt 12" Mastermix)  
> Lässt sich da noch etwas verändern? ...

Konverter: Tag - Tag  
Feld: TITLE  
Formatstring: **$regexp(%TITLE%,'((([^(]|\s)_(mix|edit)([^)]|\s)_))','[$1]',1)**

von:  
The Sun (Goes Down) (Club Mix)  
Shake It (Steven Quarré & Morris Mavado Mix)  
Mercury And Solace (Bt 12" Mastermix)  
nach:  
The Sun (Goes Down) [Club Mix]  
Shake It [Steven Quarré & Morris Mavado Mix]  
Mercury And Solace [Bt 12" Mastermix]

DD.20121230.1020.CET

---

<div class="post-metadata">

### Author: ![FredHermann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/f/b9bd4f/32.png) [@FredHermann](https://community.mp3tag.de/u/FredHermann)
#### Post date: [December 30, 2012, 4:26pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/5 "2012-12-30T16:26:53Z")

</div>

Schön, dass meine Hilfe hier angenommen wird.

**browniiie:**  
Mir ist auch aufgefallen, dass das bei Sonderzeichen wie z.B. & nicht richtig funktioniert und habe dein Code erweitert.

((.(Acoustic|Bonus|Cut|Dub|Edit|Extended|Instrumental|mix|P(ar)?t.?|Version).))

Hier habe ich weitere Wörter hinzugefügt, die in eckigen Klammern stehen sollenhier habe ich die Buchstaben (\w) und Leerzeichen (\s) durch beliebig viele Zeichen jeder Art ersetzt (.\*)

**mbaa3:**  
von dir habe ich mich jetzt zu einer erweiterten Struktur für Compilation inspirieren lassen. Dafür verwende ich den Album-Artist --\> Various Artist. Wenn der vorhanden ist, dann wird das Album in den Compilation Ordner verschoben. Bei gelegenheit, werde ich meine Struktur oben editieren und neu reinstellen.  
Des Weiteren habe ich gesehen, dass du Tag OrigYear zu benutzen. Da mich das schon ewig gestört hatte, dass einige Alben 200\* remastered wurden, aber die eigentlichen Titel schon 30 Jahre alt sind werde ich mich damit wohl noch eine Weile beschäftigen.

Ansonsten habe ich jetzt auch noch dafür gesorgt, dass Artists mit Ä bei A, mit Ö bei O usw. eingeordnet werden. Aber wie gesagt, dass werde ich bald nachträglich einstellen.

Mit freundlichen Grüßen

FredHermann

---

<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 30, 2012, 5:20pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/6 "2012-12-30T17:20:44Z")

</div>

> [@FredHermann](#):
>
> Schön, dass meine Hilfe hier angenommen wird. ... Mir ist auch aufgefallen, dass das bei Sonderzeichen wie z.B. & nicht richtig funktioniert ...  
> ((._(Acoustic|Bonus|Cut|Dub|Edit|Extended|Instrumental|mix|P(ar)?t.?|Version)._)) ...

Dieser Skript-Ausdruck funktioniert auch nicht immer richtig.  
Aus  
The Sun (Goes Down) (Club Mix)  
wird ...  
The Sun [Goes Down) (Club Mix]

Das funktioniert ...  
Konverter: Tag - Tag  
Feld: TITLE  
Formatstring:

**$regexp(%TITLE%,'\(([^(]\*(?:Acoustic|Bonus|Cut|Dub|Edit|Extended|Instrumental|mix|P(?:ar)?t\.?|Version)[^)]\*)\)','[$1]',1)**

von:  
The Sun (Goes Down) (Club Mix)  
nach ...  
The Sun (Goes Down) [Club Mix]

DD.20121220.1923.CET

---

<div class="post-metadata">

### Author: ![FredHermann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/f/b9bd4f/32.png) [@FredHermann](https://community.mp3tag.de/u/FredHermann)
#### Post date: [December 31, 2012, 10:51am UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/7 "2012-12-31T10:51:43Z")

</div>

**@DetlevD**  
Vielen Dank für den Hinweis. Aber was bedeutet der Ausdruck ?: zum Beispiel vor Acoustic? Ich habe keine programmiertechnische Bedeutung für den : in der Hilfe gefunden.

Ansonsten habe ich jetzt mal meinen Ordnerstrukturquellcode und auch die angesprochenen Fehler aktualisiert. Dummerweise zieht der jetzt das Forum in die Breite. Vorgenommene Änderungen habe ich soweit beschrieben.

Mit freundlichen Grüßen

FredHermann

---

<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 31, 2012, 12:46pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/8 "2012-12-31T12:46:19Z")

</div>

> [@FredHermann](#):
>
> ... was bedeutet der Ausdruck ?: ...

Hallo FredHermann, betreffend Regex Syntax und "non-marking grouping" bzw. "non-capturing" siehe dort ...  
[http://www.boost.org/doc/libs/1\_52\_0/libs/...html/index.html](http://www.boost.org/doc/libs/1_52_0/libs/regex/doc/html/index.html)  
[http://www.regular-expressions.info/refadv.html](http://www.regular-expressions.info/refadv.html)

Folgend ein paar Anmerkungen.

Den Teilausdruck ...  
P(?:ar)?t.?  
... kann man vielleicht auch so übersichtlich schreiben ...  
Part|Pt.

Wenn du eine Aktionengruppe anlegst, dann kannst du den Bandwurmausdruck vermeiden, indem du anfangs oder wenn erforderlich Zwischenergebnisse berechnest und diese in temporären Tag-Feldern ablegs, um danach den Inhalt der temporären Tag-Felder in einfachen Skriptausdrücken wieder zu verwenden.  
Am Ende entfernst du die temporären Tag-Felder.  
Das erhöht die Übersichtlichkeit, die Nachvollziehbarkeit und die Änderbarkeit der Programmierung.

Erster Buchstabe von ARTIST entnehmen und gegebenenfalls ersetzen ...

**$replace($upper($left(%ARTIST%,1)),'Ä','A','Ö','O','Ü','U')**

Auch so etwas kann man machen ...

**$replace($upper($left(%ARTIST%,1)),'Ä','A','Ö','O','Ü','U','!','#','0','#','1','#','2','#','3','#','4','#','5','#','6','#','7','#','8','#','9','#')**

... wobei die Methode mit $isdigit eleganter erscheint ...  
... aber ein regulärer Ausdruck für die Ziffern tut's auch ...

**$regexp($left(%ARTIST%,1),'[0-9!]','#')**

Artist befreien von " feat. ..." oder " vs. ..." ...

**$regexp(%ARTIST%,'^(.+?)\s+(?:feat|vs)\.?\s+.\*$','$1')**

Am Ende des Bandwurmausdrucks ...  
... \   
$if2(%album%,)  
$if($and(%album%,%discnumber%),CD $num(%discnumber%,),)\   
...  
... kann ein fehlerhafter Pfadname erzeugt werden, der zwei oder drei direkt aufeinander folgende Backslashes enthält.  
Mp3tag wird das vermutlich reparieren, aber unsauber ist es doch.

DD.20121231.1653.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 31, 2012, 9:04pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/9 "2012-12-31T21:04:21Z")

</div>

> [@FredHermann](#):
>
> ... ich wollte mal meine Aktionengruppe und Ordnerstruktur für wissbegierige vorstellen. Einmal tue ich das um weitere Anregungen zu möglichen Ordnerstrukturen zu geben und zu diskutieren. ... Des Weiteren würde ich mich sehr über Anregungen bzw. Optimierungen zu meiner Aktionengruppe freuen. ...

Wenn man die Aufgabe einmal ganz anders aufschreibt, dann könnte es so aussehen ...

Anfang Aktionengruppe **Test\_2012#20121231.FredHermann** 

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

 

Aktion #2  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_ARTIST**  
_Formatstring:_ **$regexp(%TMP\_ARTIST%,'^(.+?)\s+(?:feat|vs).?\s+.\*$','$1')**

 

Aktion #3  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_INDEX**  
_Formatstring:_ **$left(%TMP\_ARTIST%,1)**

 

Aktion #4  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_INDEX**  
_Formatstring:_ **$if($isdigit(%TMP\_INDEX%),$regexp(%TMP\_INDEX%,'[0-9]','#'),$replace($upper(%TMP\_INDEX%),'Ä','A','Ö','O','Ü','U','!','#'))**

 

Aktion #5  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FOLDER1**  
_Formatstring:_ **$if($eql(%ALBUMARTIST%,'Various Artists'),'\_Compilations',%TMP\_INDEX%)**

 

Aktion #6  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FOLDER2**  
_Formatstring:_ **$if($eql(%ALBUMARTIST%,'Various Artists'),'.',%TMP\_ARTIST%)**

 

Aktion #7  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FOLDER3**  
_Formatstring:_ **$if2(%ALBUM%,'.')**

 

Aktion #8  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FOLDER4**  
_Formatstring:_ **$if($and(%ALBUM%,%DISCNUMBER%),'CD '$num(%DISCNUMBER%,1),'.')**

 

Aktion #9  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FILENAME**  
_Formatstring:_ **$if($and(%ALBUM%,%TRACK%),$num(%TRACK%,2)' - ',)%ARTIST%' - '%TITLE%**

 

Aktion #10  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_DRIVE**  
_Formatstring:_ **'X:'**

 

Aktion #11  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_FOLDER0**  
_Formatstring:_ **'TEST\FRED'**

 

Aktion #12  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **TMP\_PATH**  
_Formatstring:_ **%TMP\_DRIVE%'\<!--colorc--\>'%TMP\_FOLDER0%'\<!--colorc--\>'%TMP\_FOLDER1%'\<!--colorc--\>'%TMP\_FOLDER2%'\<!--colorc--\>'%TMP\_FOLDER3%'\<!--colorc--\>'%TMP\_FOLDER4%'\<!--colorc--\>'%TMP\_FILENAME%**

 

Achtung:  
Die Aktionen #13 und #14 erst dann ausführen, wenn die Aktionen zuvor korrekte Werte geliefert haben.  
Kontrolle der Tag-Felder im Dialog "Erweiterte Tags...".

 

Aktion #13  
_Aktionstyp 5:_ **Tagfeld formatieren**  
_Feld \_\_\_\_\_\_\_:_ **\_FILENAME**  
_Formatstring:_ **%TMP\_PATH%**

 

Aktion #14  
_Aktionstyp 9:_ **Tagfelder entfernen**  
_Folgende Tagfelder entfernen (mit Semikolon getrennt):_ **TMP\_ARTIST;TMP\_INDEX;TMP\_DRIVE;TMP\_FOLDER0;TMP\_FOLDER1;TMP\_FOLDER2;TMP\_FOLDER3;T  
MP\_FOLDER4;TMP\_PATH;TMP\_FILENAME**

 

Ende Aktionengruppe **Test\_2012#20121231.FredHermann** (14 Aktionen)

 

DD.20121231.2300.CET

---

<div class="post-metadata">

### Author: ![DJ\_Mucke](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dj_mucke/32/224_2.png) [@DJ\_Mucke](https://community.mp3tag.de/u/DJ_Mucke)
#### Post date: [January 1, 2013, 10:06am UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/10 "2013-01-01T10:06:20Z")

</div>

> [@FredHermann](#):
>
> ...ich wollte mal meine Aktionengruppe und Ordnerstruktur für wissbegierige vorstellen...

Es gibt dazu von deiner Seite auch bestimmt eine/mehrere Aktionen \*.mta für den Verschiebevorgang.  
Würde an dieser Stelle gerne mal reinschauen/anwenden.  
Bist du gewillt auch diese Aktion/en reinzustellen zum dl.

Gruß DJ Mucke

---

<div class="post-metadata">

### Author: ![FredHermann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/f/b9bd4f/32.png) [@FredHermann](https://community.mp3tag.de/u/FredHermann)
#### Post date: [January 1, 2013, 11:09am UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/11 "2013-01-01T11:09:29Z")

</div>

**@ DetlevD**  
Also über temporäre Tag-Felder habe ich ja noch gar nicht nachgedacht. Und wenn ich das richtig verstanden habe, speicherst du die kleinen Zwischenwerte aus meinem riesigen Quellcode in dafür angelegte Felder und benutzt diese Felder, um Schritt für Schritt den Dateipfad zu erstellen. Sehr interessant. Ich werde das mal demnächst ausprobieren. Das Ganze geht dann aber nur über Aktionen wenn ich das richtig sehe und nicht mehr über die TAG --\> Dateiname Funktion

Vielen Dank schon mal für die Mühe, die du dir gemacht hast. Da habe ich ja noch einiges zu tun.

**@ DJ Mucke**  
Ich weiß nicht genau, was für einen Verschiebevorgang du meinst. Der riesige Code verschiebt ja die Musikdateien sofort in mein Netzlaufwerk, da habe ich nichts weiter. Ich habe nur meine Standard-Aktion, die ich ja bereits hochgeladen habe. Und wenn ich da raufklicke, dann sollen die Tags mit einem Rutsch alle so sein, wie ich sie haben will. Ansonsten habe ich nur noch 2 Aktionen um die Cover in den Tag zu laden.

Mit freundlichen Grüßen

FredHermann

---

<div class="post-metadata">

### Author: ![DJ\_Mucke](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dj_mucke/32/224_2.png) [@DJ\_Mucke](https://community.mp3tag.de/u/DJ_Mucke)
#### Post date: [January 1, 2013, 2:21pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/12 "2013-01-01T14:21:40Z")

</div>

> [@FredHermann](#):
>
> ...Der riesige Code verschiebt ja die Musikdateien sofort in mein Netzlaufwerk...

Genau das meinte ich ja. Wo hast du den eingeschoben: Aktion - Tag-Feld formatieren?  
 ![:music:](https://community.mp3tag.de/uploads/default/original/1X/2ba05d1ade5eb0d15fc173be6f717dbe63890a70.gif ":music:") bitte um Erläuterung 😉

---

<div class="post-metadata">

### Author: ![FredHermann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/f/b9bd4f/32.png) [@FredHermann](https://community.mp3tag.de/u/FredHermann)
#### Post date: [January 1, 2013, 2:47pm UTC](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223/13 "2013-01-01T14:47:34Z")

</div>

> [@DJ Mucke](#):
>
> Genau das meinte ich ja. Wo hast du den eingeschoben: Aktion - Tag-Feld formatieren?  
> ![:music:](https://community.mp3tag.de/uploads/default/original/1X/2ba05d1ade5eb0d15fc173be6f717dbe63890a70.gif ":music:") bitte um Erläuterung 😉

Na dieses Teil habe ich bei der Tag zu Dateiname Funktion reinkopiert. Das Symbol mit dem roten Punkt und dem Pfeil zu dem weißen Blatt. Tastenkombination ist Alt+1. Aber ich werde das jetzt viel eleganter nach DetlevD's Vorschlag machen. 😆 Das ist ja auch wesentlich übersichtlicher und lässt sich besser bearbeiten. Wenn ich das fertig habe, werde ich es ebenfalls hochladen.

Vielen Dank nochmal dafür Detlev.

Mit freundlichen Grüßen

FredHermann

**EDIT:**  
Anbei befindet sich die Aktionsliste für die Ordnerstruktur. Ähnlich wie DetlevD das aufgezeigt hat. Dafür müssen die Tagfelder

- %tmp\_artist%
- %tmp\_drive%
- %tmp\_alphabet%
- %tmp\_artist\_folder%
- %tmp\_album\_folder%
- %tmp\_cd\_folder%
- %tmp\_filename%
- %tmp\_path%

erzeugt werden. Wenn dann der %tmp\_path% richtig ist und es keine Probleme gab, brauch man bei Tag --\> Dateiname (Tastenkombi: Alt+1) einfach nur noch %tmp\_path% eingeben und die Daten werden in diese Ordnerstruktur eingefügt. Zum Schluss können dann die temporären Tags wieder gelöscht werden.

[Ordnerstruktur.mta](https://community.mp3tag.de/uploads/default/original/2X/3/3c27aa985ddd06e366b26e4f8715b1db423b09e4.mta) (940 Bytes)

[Tempor\_\_re\_Tags\_l\_\_schen.mta](https://community.mp3tag.de/uploads/default/original/2X/7/7ab8af8b4a9db1c78952e25ac2b6939f199ae189.mta) (134 Bytes)
