# 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:** 1
**Showing post:** 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)

---

_[View the full topic](https://community.mp3tag.de/t/anfangerhilfe-zu-skriptbefehlen-und-ordnerstruktur/14223)._
