Dateien löschen

Denn iTunes findet Dubletten eigentlich nur nach Artist/Title - es guckst sich nie die Länge an.
Wenn man dann dem TITLE etwas hinzufügt wie "long version" findet iTunes das nicht mehr als Dublette.
Nur: wenn die Daten so exakt übereinstimmen müssen, dann kannst du das mit MP3tag auch hinkriegen. z.B: mit Sortieren.
Was dann allerdings wieder den Pferdefuß hat, dass man nach mehreren Kriterien immer wieder sortieren muss - allein schon die Problematik mit dem Artikel: heißt es "The Greatest Hits" oder nur "Greatest Hits"? Das eine Mal wird es bei "T", das andere Mal bei "G" eingeordnet.
(ist es "The Beatles" oder "Beatles"?)

Wenn du ähnliche Stücke finden willst, dann wäre ggf. ein Programm wie Similarity eine Hilfe. Das vergleicht mit einstellbarer Unschärfe den Tag- und den Audioteil.

Ja, man kann ganze Ordner importieren, aber dann kann man nicht selektieren, welche Dateien man möchte, und man muss den ganzen Ordner importieren, d.h. ich hätte danach 10000 Songs doppelt, von denen 9800 manuell gelöscht werden müssten und 200 zuerst angespielt (damit iTunes den Link vom Eintrag mit Bewertung, die ich für die Erstellung der Playlisten brauche, auf die ersetzte Datei herstellt). Wenn ich Dateien einzeln importiere, kann ich die Dateien in einem Ordner nach Änderungsdatum sortiert anzeigen und dann genau die zum Import selektieren, die ich eine Minute zuvor in den Ordner verschoben habe. Aber wie gesagt, das müsste ich dann 50mal machen, für Songs eines jeden Jahres einmal (mit 1955 geht's los, sind sogar schon 59 Jahre).

Eine Playliste mit genau den neuen Songs zu importieren wäre der eleganteste Weg. Das Problem ist nur, die neuen Dateien an die endgültigen Orte zu verschieben UND eine Playliste dieser Orte zu generieren, wobei vorhandene Dateien gleichen Namens überschrieben werden sollen.

Ich verrate doch noch etwas mehr über den Zweck der Übung:

Mit dem Programm iTunesExporter kann ich in iTunes angelegte Playlisten mit SD-Karten für's Autoradio synchronisieren. Ich habe eine Batch-Datei geschrieben, die mir auf eine SD-Karte ganz bestimmte iTunes-Listen samt Songs abspeichert. Damit Songs, die in mehreren Listen auftauchen (z.B. Best of 80s, Best of 1985) nicht doppelt angelegt werden, kann ich nicht für jede Playlist einen eigenen Ordner anlegen (dies kann das Programm), sondern lasse das Programm die Original-Ordnerstruktur von iTunes übernehmen. So weit, so gut.

Nur ist das dumme Autoradio nicht in der Lage, mehr als 1000 Dateien in einem Ordner zu verwalten (es liest das gesamte Verzeichnis ein und hört bei 1000 einfach auf) und verweigert alle Playlisten, die sich auf Dateien in solchen Ordnern beziehen. Daher möchte ich die iTunes-Ordnerstruktur so ändern, dass ich nicht pro Jahrzehnt, sondern pro Jahr einen Ordner anlege mit jeweils weniger als 1000 Songs. Dann hätte das Autoradio keine Probleme. Aber dann wird eben das Einsortieren neuer Songs in iTunes kompliziert.

Wenn es ein Tool gäbe, mit dem man, möglichst script- oder batchgesteuert, ausgewählte iTunes-Playlisten auf SD-Karte exportieren könnte, ohne Dateidopplungen und mit den Songs in neuen Album-Unterordnern (Album = Pop ) zu weniger als 1000 Songs einsortiert, dann wäre das ebefalls eine Lösung.

Eigentlich hätte ich die Songs im Auto vom iPod abspielen wollen, dafür habe ich mir ein entsprechendes Interface gekauft, das die iPod-Steuerung komplett übernimmt. Dieses verweigert aber den Shuffle-Modus und die Anzeige von Album-Covern vom iPod, es unterstützt diese nur von SD-Karte. Während letzteres verschmerzbar wäre, ist der Shuffle-Modus unverzichtbar, weil einige Playlisten ein paar hundert Songs lang sind, und ich nicht immer wieder von Anfang an da durchhören möchte. Die andere Alternative ist ein Klinkenkabel vom Kopfhöreranschluss des iPods zum Radio, das vom iPod am Stromanschluss quer über die Mittelkonsole zur Armlehne verläuft, unter der sich der Anschluss zum Radio befindet. Das sieht besch...eiden aus. Wenn ich die Songs in einem dem Autoradio genehmen Form auf SD-Karte bekäme, dann wäre alles perfekt, Shuffle, Coverart, und der iPod könnte zu Hause bleiben und wäre so auch noch diebstahlgeschützt.

Ich habe irgendwie den Eindruck, dass da noch zuviel Handarbeit drin ist.

Also: MP3tag kann Dateien aus iTunes per d&d einlesen. Wenn also die Quelle für das "drag" eine Playlist in iTunes ist, dann lässt sich diese Auswahl auch genauso in Mp3tag einlesen.
Diese Dateien können an einen anderen Ort verschoben werden mit MP3tag-Mitteln.
Das Problem an der Stelle könnte das "Verschoben" sein.
Ich spinne mal weiter:
Wenn sich zuvor die Dateinamen (und Pfade) aus den Tags ergeben haben, dann kann man diese Eigenschaften beliebig manipulieren.
Also: ich kriege eine Playlist aus iTunes raus.
Diese Auswahl ziehe ich in MP3tag.
Dort benenne ich alle Dateien so um, dass sie (erstmal) unterhalb eines fixen Punkts auf der Festplatte hängen, was weiß ich: c:\zum Export\%album%\%title%
Dieses Verzeichnis kopiere ich als ganzes in einen neuen Ordner.
Dann lasse ich MP3tag auf die zuvor verschobenen Dateien wieder los und verschiebe sie zurück an den alten ort (und der sollte auch durch die Tags zu definieren gehen).
Die Kopien der Dateien im neuen Ordner kann ich nun nach beliebigen Kriterien anordnen.
Z.B. kann ich die alle mal durchnummerieren.
Und dann lege ich neue Ordner an mit
sdkarte$div(%track%,1000)\%title%
Damit landen dann immer maximal 1000 Dateien in einem Ordner.
Wenn TRACK erhalten bleiben soll, kannst du auch ein Benutzerdefiniertes Feld mit %_counter% anlegen, was dann für die Dateiverteilung genutzt wird...
Von daher sind die 50 Ordner nicht wirklich nötig. Nur für die autoradio-spezifischen Manipulationen musst du eine Datenquelle haben, die als Container erstmal die notwendigen Daten aufnimmt.

Wenn ich Dich richtig verstanden habe, wäre die Playlist diejenige, die ich auf SD-Karte schreiben möchte.

Problem: das sind auch ziemlich viele, mehr als 2 Stück pro Jahr (einmal alle, einmal "Best of", plus noch ein paar "Best of Jahrzehnt", "Best of Ever", und dann gibt es das ganze neben "Pop" auch nochmal für "Dance" ab 1989). Das wäre dann in der Tat sehr viel Handarbeit, die Playlisten regelmäßig auf dem letzten Stand zu halten.

MP3Tag kann nicht zufällig von der Kommandozeile aus gesteuert werden?

Das schöne am iTunesExporter ist, dass das Programm das Exportieren bestimmter Playlisten in einer Batchdatei erledigen kann (man muss nur eine Variable definieren, die alle Playlistennamen enthält, und das Programm damit aufrufen). Nur kann es leider keine Ordnerstruktur aus Albumartist (wäre bei Jahres-Compilations immer Various) und Album erzeugen. Ich habe den Entwickler eben auch mal angeschrieben, vielleicht baut er das noch ein. Wäre ja auch generell als Ordnerstruktur nicht verkehrt, wenn man ohne Playlisten durch seine Musiksammlung navigieren möchte. Dann könnte ich in iTunes die Struktur lassen wie sie ist und der iTunesExporter würde die Songs in eine neue Ordnerstruktur mit den angepassten Playlisten überführen. Das Programm leistet dies schon, nur eben nicht in einer Struktur, die mein Autoradio akzeptiert.

Kniffliges Problem.

Also: wenn du die Dateien schon auf der Karte hast, kannst du sie doch noch mal mit MP3tag bearbeiten und nach dem schon vorgestellten Muster verschieben (nur auf der Karte).
De facto arbeitest du mit Kopien, die den (sehr speziellen) Bedürfnissen des Abspielers angepasst werden.

Die Arbeitsschritte sind etwa so ...
0. In Mp3tag Listenansicht eine Spalte anlegen, z. B. ...
Name: X, Wert: %X%, Feld: %X%, Sortieren nach: %_filename%%X%%_folderpath%

  1. Temporären Ordner mit den neuen Dateien in Mp3tag einlesen.
  2. Tagfeld X füllen mit 'x' oder 'n' für 'neu', manuell oder durch Aktion "Format value".
  3. Zielordner zusätzlich in Mp3tag einlesen.
  4. Sortieren nach Spalte X.
  5. Die zu löschenden alten Dateien manuell markieren.
  6. Dateien manuell löschen via Menü "Mp3tag/Bearbeiten/Löschen..." ...
    ... oder ein dafür passendes Exportskript ausführen, das wiederum eine Kommandodatei erzeugt, womit dann die Löschung der ausgewählten Dateien erledigt wird.
  7. Die neuen Dateien in die 'alte' Struktur verschieben.

Hmm ... die Schritte 4,5,6,7 können vielleicht zusammengefasst durch ein Exportskript erledigt werden.
Hmm ... wenn man als Unterscheidungskriterium nicht ein besonderes Tagfeld X nehmen möchte, dann könnte man sicherlich auch den Verzeichnispfad zur Unterscheidung benutzen, so erspart man sich den Schritt 2 auch noch.

DD.20140605.1254.CEST

Wenn es sich am Ende nur um einen Vergleich von Dateien in Ordnern handelt, dann würde ich den TotalCommander nehmen und beide Ordner/-bäume miteinander vergleichen und schließlich die Dateien mit denselben Dateinamen "von rechts nach links kopieren". Fertig.

Außerdem bietet iTunes durch die eingebaute Programmierschnittstelle COM Object "iTunes.Application" die Möglichkeit der externen Steuerung durch ein VBScript oder andere Skriptsprachen, womit ein Import in die Datenbank oder ein "auffrischen"' gesteuert werden kann; vermutlich können auch Playlisten automatisch erzeugt werden.

Beispiel:
Set objiTunes = CreateObject("iTunes.Application")
Set objTracks = objiTunes.LibraryPlaylist
Set objAdd = objTracks.AddFile("N:\NEU\07_StopMessingAround_Omar_TNLT_1991.mp3")


Eigentlich muss ein Vergleich überhaupt nicht angestellt werden!

Man braucht nur ...

... ein Mp3tag Export Skript, welches eine DOS CMD Datei erzeugt, ...
für jede zu verschiebende Datei so etwa mit diesem Kommando ...

'MOVE /Y "'%_path%'" "'%_folderpath_old%'"'

... und dazu ein zweites Mp3tag Export Skript, welches die dazugehörige Playliste erzeugt.
(Frage dazu: um welchen Dateityp, welche Dateiendung, handelt es sich dabei?)

DD.20140605.1449.CEST

Hier ist eine Exportdatei, welche eine Stapeldatei erzeugt, nun doch mehr als nur eine Zeile, ...
Verzeichnisnamen und Dateinamen musst du anpassen an deine Umgebung ...
benutze Mp3tag Platzhalter wo erforderlich ...

01: $filename($getEnv('USERPROFILE')'\Desktop\Mp3tag.MoveFileToFolder.cmd',ANSI)$puts(

02: )'@ECHO OFF'
03: 'CLS'
04: 'REM #===================================================================='
05: 'REM # Mp3tag.MoveFileToFolder.cmd'
06: 'REM #'
07: 'REM # ©20140605.Detlev Dalitz'
08: 'REM #--------------------------------------------------------------------'
09: 'REM # This cmd script file has been created by Mp3tag export feature
.
'
10: 'REM # Export script file: "Export.CMD.20140605.MoveFileToFolder.mte'
11: 'REM #--------------------------------------------------------------------'
12: 'REM # '%_datetime%' '%_app%
13: 'REM #===================================================================='
14: 'CHCP 1252 1>NUL 2>NUL'
15: 'ECHO.[Mp3tag.MoveFileToFolder.cmd]'
16: 'ECHO.'
17:
18: 'REM Set DOS Environment Variable COPYCMD for MOVE, COPY, XCOPY ...'
19: 'REM to control prompting to confirm overwriting of the destination.'
20: 'SET COPYCMD=/-Y & REM Do prompting.'
21: 'SET COPYCMD=/Y & REM Do not prompting.'
22:
23: 'REM Set complete filepathname for list file output here ...'
24: 'REM Make sure output folder to exist.'
25: 'REM MD ...'
26: 'SET FilePathListfile='$getEnv('USERPROFILE')'\Desktop\Mp3tag.Listfile.txt'
27:
28: 'ECHO.'$char(7)
29: 'CLS'
30: 'ECHO.Move file to folder'
31: 'ECHO.-------------------'
32: 'IF EXIST "%FilePathListfile%" DEL /P "%FilePathListfile%" & ECHO.'
33:
34: $loop(%_path%)
35: 'REM Loop '%_counter%
36:
37: 'REM Set new folderpathname with trailing backslash\ ... use Mp3tag placeholders'
38: 'SET FolderPathNew=O:\TEST\T1\Edits\new<!--colorc-->'
39:
40: 'REM Set current filepathname ... use Mp3tag placeholders'
41: 'SET FilePathNow='%_path%
42:
43: 'REM Set current folderpathname ... use Mp3tag placeholders'
44: 'SET FolderPathNow='%_folderpath%
45:
46: 'REM Set current filename ... use Mp3tag placeholders'
47: 'SET FileName='%_filename_ext%
48:
49: 'REM Set progress counter'
50: 'SET Progress='%_counter%
51:
52: 'CLS'
53: 'ECHO.Move file to folder'
54: 'ECHO.-------------------'
55: 'ECHO.Counter ..: %Progress%'
56: 'ECHO.File .....: "%FileName%"'
57: 'ECHO.Folder now: "%FolderPathNow%"'
58: 'ECHO.Folder new: "%FolderPathNew%"'
59: 'ECHO.'
60: 'IF NOT EXIST "%FolderPathNew%" MD "%FolderPathNew%"'
61: 'MOVE "%FilePathNow%" "%FolderPathNew%"'
62: 'IF NOT ERRORLEVEL 1 ECHO.%FolderPathNew%%FileName%>>"%FilePathListfile%"'
63: 'REM DIR /P/A/N/O "%FolderPathNew%%FileName%"'
64: 'ECHO.'
65: 'IF ERRORLEVEL 1 PAUSE'
66: $loopend()
67: 'IF EXIST "%FilePathListfile%" START "Result" /MAX "%FilePathListfile%"'
68: 'DEL "%~0" 1>NUL 2>NUL & EXIT'
69: 'REM ====================================================================='

Export.CMD.20140605.MoveFileToFolder.mte ( 2.12K ) Number of downloads: 2

Export.CMD.20140605.MoveFileToFolder.mte (2.45 KB)

DD.20140607.0634.CEST

Export.CMD.20140605.MoveFileToFolder.mte (2.45 KB)

Ja, aber dann müssen die zahlreichen auf der Karte befindlichen Playlisten auf die neuen Dateiorte geändert werden. Das wäre eher etwas für ein selbstgeschriebenes Programm.

Es sei denn, ich bastele mir die Playlists in MP3Tag neu. Man könnte die iTunes-Wertung ja auf den Wertungs-Tag der Datei übertragen (z.b. in iTunes nach Wertung sortieren, mit D&D alle Dateien der gleichen Wertung nach MP3Tag ziehen und dann dort den Wertungstag entsprechend anpassen lassen).

Kann ich in MP3Tag einen Haufen Dateien öffnen und daraus automatisch eine Liste von Playlisten mit verschiedenen Kriterien generiern lassen? Oder alternativ mit einem anderen Programm? Alles aus einem Jahr, alles aus einem Jahr mit mehr als 3 Sternen, alles aus einem Jahrzehnt mit mehr als 4 Sternen usw.?

Das Sichten der doppelten Dateien klingt immer noch nach etwas viel Handarbeit.

Nicht ganz, das Bewegen muss MP3Tag machen, damit es eine Playliste für den anschließenden iTunes-Import generieren kann, aber das bringt mich auf eine Idee: vielleicht kann man eine Windows-Batch-Datei schreiben, die die Filenamen in 2 Ordnern mit Unterordnern vergleicht und gleiche Namen in dem iTunes-Zielordner ohne Nachfragen löscht oder umbenennt. Dann könnte MP3Tag nämlich ohne Kollision die Dateien durch Umbenennen an den Zielort verschieben. Das wäre die Lösung. Allerdings kenne ich mich in Batch-Programmierung nicht wirklich aus, aber gut, muss man halt lernen.

Das ist schon nahe dran (ganz unten):

http://stackoverflow.com/questions/4248843...are-different-d

statt "NOT exist" "exist" und statt "echo ..." "del ...". %2 Müsste nur noch durch seine Subfolder iteriert werden

Das klingt auch interessant, aber mit VBScript kenne ich mich noch weniger aus als mit Batchscript... :unsure:

Guck dir mal die Filterfunktion an. Damit kann man die geladenen Dateien nach unterschiedlichen auch kombinierten Kriterien zusammenstellen

%year% HAS 198 AND %popularimeter% IS 128
von dieser Auswahl kannst du dann eine Playlisten erzeugen. Und mit anderen Kriterien eine weitere.

Vielleicht wird es in einer kommenden Version von Mp3tag die Möglichkeit geben, diese Warnung/Fehlermeldung von Mp3tag zu vermeiden, vielleicht durch die Option, eine mit demselben Dateipfadnamen existierende Datei doch überschreiben zu können???

DD.20140606.0837.CEST

Das wäre natürlich cool.

Ich empfinde es ja immer als gute Warnung, wenn anscheinend eine Umbenennungsregel zu Konflikten führt, die nicht einfach blind ausführen zu lassen.
Denn es kann ja auch sein, dass die Zieldatei einfach aus Schlampigkeit noch keinen eindeutigen Namen bekommen hat.

Für den OP habe ich den Eindruck, dass das Problem mehr aus seinem Workflow und den besonderen ANforderungen des Autoradios herrührte. Mit einigen Änderungen in der Datenaufbereitung lässt sich das Problem wohl lösen, ohne dass es die Option zum Überschreiben gibt.

Da war doch mal was. :wink:
Verhalten bei gleichen Dateinamen in einem Ordner

Wow, großartig, vielen Dank. Es handelt sich um m3u-Playlisten.

Ich hab's mal probiert, und es funktioniert im Prinzip, aber noch nicht ganz fehlerfrei. Einerseits gibt's Probleme bei allen Dateien und Pfaden mit Umlauten etc. Zum Zweiten fragt das Programm zwar, ob es eine vorhandene Datei überschreiben soll; bestätigt man mit J, kommt jedoch die Fehlermeldung "Das System kann die angegebene Datei nicht finden."

Aber genial, dass das so funktioniert, nochmals vielen Dank!

Hat sich erledigt mit den Fehlern nachdem ich ganz zu Anfang ein CHCP 1252 ergänzt habe. Er kann Umlaute verarbeiten, er fragt nicht mehr, ob er löschen soll, und er überschreibt die vorhandenen Dateien.

Jetzt passe ich noch den Zielpfad an das Format %Album%/%-filename" an und der Move-Befehl ist komplett.

Die Ausgabe ins Textfile muss dann noch M3u-kompatibel gemacht werden. Das schaffe ich wohl noch. Supervielen Dank!!!

Vielen Dank für den Hinweis zum Wechseln der Codepage!
Ich war die ganze Zeit schon unsicher, ob ich nicht noch etwas vergessen hatte.

Da muss nichts besonders kompatibel gemacht werden.
Es reicht aus, die Dateiendung von ".txt" auf ".m3u" oder ".m3u8" zu ändern.

DD.20140607.0725.CEST

Na, das ist einfach.

Ich würde mir gerne in MP3Tag den Zielordner als Spalte und Feldvariable zusammenbasteln, die ich dann in dem Skript verwenden kann. Die neue Spalte iTunes-Ordner soll dann für Popsongs den String "Compilations\Pop\%album%" und für Dance "Compilations\Dance\%album%" enthalten. Ich versuche das gerade mit einem

$if ( $eq ($left(%album%,3),Pop) , $ansi(Compilations\Pop\%album%), $ansi(Compilations\Dance\%album%) )

im Wertefeld der neuen Spalte zu erzeugen, aber anscheinend wertet MP3Tag keine Formeln als Spaltenwerte aus, es wird meine Formel als String mit substituierten Tagvariablen ausgegeben. Oder mache ich einfach Syntaxfehler? Ohne $if einfach als Wert "Compilations\Pop\%album%" funktioniert es. Hab' auch "" und '' um den Wert "Pop" versucht. Ein Stringcompare habe ich nicht gefunden.

Was auch nicht klappt, ist in einer Aktion auf das neue iTunes-Ordner-Feld zuzugreifen, sonst könnte ich die Formel in die Aktion mit hineinnehmen, die mir den Albumnamen "Pop year%" bzw. "Dance %year%" zusammenbaut.

Hast Du einen Tipp, wie das geht?

Zum Beispiel funktioniert dieser Formatstring ...

$ansi($if($eql($left(%ALBUM%,3),'Pop'),'Compilations\Pop\'%ALBUM%,'Compilations\Dance\'%ALBUM%))

... oder ...

$ansi('Compilations\'$if($eql($left(%ALBUM%,3),'Pop'),'Pop\','Dance\')%ALBUM%)

... übrigens ... der Konverter "Tag - Tag" bietet eine Vorschau für den Formatstring.

Du kannst das Ergebnis des Formatstrings nur dann in einer Aktion verwenden, wenn die jeweilige Datei ein Tagfeld hat, in dem das Ergebnis des Formatstrings gespeichert ist.
Das stimmt so nicht absolut ... man kann den Formatstring benutzen, wo er gebraucht wird.
Zur Vereinfachung von Arbeitsschritten kann man ein Tagfeld anlegen, und dieses dann später entfernen, wenn man es nicht mehr braucht.

DD.20140607.1453.CEST

Ja, der Formatstring funktioniert tadellos, vielen Dank.

Aber wie Du sagst, die mp3-Datei speichert den neuen Tag %itunesfolder% nicht, deswegen kann ich ihn auch nicht beim Export verwenden. Wie kann man denn das Feld der Datei zuordnen und dann wieder entfernen?

Am liebsten wäre es mir so: ich ziehe die Dateien in das MP3Tag-Übersichtsfenster, rufe eine Aktion auf, die den Albumnamen erzeugt (habe ich schon) und dann den %itunesfolder%-Tag mit Deinem Formatstring generiert und in der Datei abspeichert. Das kann ich dann auch noch manuell editieren, falls nötig.

Danach rufe ich Deine Export-Datei auf, lese dort den %itunesfolder%-Tag jeder Datei und entferne den Tag, bevor die Datei verschoben wird.

Im Prinzip könnte ich auch ein anderes, existierendes Tagfeld missbrauchen, nur das Kommentarfeld benutze ich schon anderweitig.

Sorry, wenn ich eine Nervensäge bin...

Mit der Aktion "Tag-Feld formatieren" kannst du ein Tagfeld in einer Datei anlegen, z. B. ...

Aktion "Tag-Feld formatieren"
Name: iTunesFolder
Formatstring: $ansi('Compilations'$if($eql($left(%ALBUM%,3),'Pop'),'Pop','Dance')%ALBUM%)

Diese Aktion baust du in dieselbe Aktionengruppe ein, in der die andere Aktion den Albumnamen erzeugt.
Mit einmal Aktionengruppe aufrufen werden beide Aktionen ausgeführt.

... das wäre mit dieser einen Aktionengruppe erledigt.

Das kannst du so machen, wenn du darauf achtest, die mit dem Export automatisch erzeugte CMD nicht sofort auszuführen!
Sonst müsste die Reihenfolge anders sein:

  1. Export ausführen, verschiebt die Dateien.
  2. Mit Aktion "Tag-Feld entfernen" bei den verschobenen Dateien das Hilfs-Tagfeld entfernen.

Du kannst dir den Umstand mit dem Hilfs-Tagfeld ersparen, wenn du die Konstruktion des jeweiligen Zielpfades in der Export-Datei erledigen lässt.
Beispiel:

'SET FolderPathNew=O:\TEST\'$ansi('Compilations\'$if($eql($left(%ALBUM%,3),'Pop'),'Pop\','Dance\')%ALBUM%)

DD.20140607.1821.CEST

Das hab' ich dann so gemacht.

Vor dem Schreiben der Zeile in die Playliste musste man nochmal umschalten auf UTF-8 (chcp 65001), sonst fand iTunes die Dateien nicht. Danach lief alles. Die Songs sind schon auf den SD-Karten und das Radio spielt sie anstandslos ab. :slight_smile:

Hier die endgültige Version der Export-Datei:

$filename($getEnv('USERPROFILE')'\Desktop\Mp3tag.MoveFileToFolder.cmd',ANSI)$puts(
)'@ECHO OFF'
'CLS'
'CHCP 1252 >nul'

'REM #===================================================================='
'REM # Mp3tag.MoveFileToFolder.cmd'
'REM #'
'REM # Author ©20140506.Detlev Dalitz'
'REM #--------------------------------------------------------------------'
'REM # This cmd script file has been created by the Mp3tag export feature.'
'REM # Export script file: "Export.CMD.20140506.MoveFileToFolder.mte'
'REM #--------------------------------------------------------------------'
'REM # '%_datetime%' '%_app%
'REM #===================================================================='

'REM Set iTunes media path here with trailing backslash'
'SET iTunesMediaPath=K:\Musik\iTunes\iTunes Media\'

'REM Set the complete filepathname for the list file here ...'
'SET FilePathListfile=%iTunesMediaPath%Mp3tag.Importliste.m3u'

'ECHO.'$char(7)
'CLS'
'ECHO.Move file to folder'
'ECHO.-------------------'
'IF EXIST "%FilePathListfile%" DEL "%FilePathListfile%" & ECHO.'

$loop(%_path%)
'REM Loop '%_counter%

'REM Set the new folderpathname with trailing backslash! ... use Mp3tag placeholders'
'SET FolderPathNew=%iTunesMediaPath%'$if($eql($left(%album%,3),'Pop'),'Compilations\Pop\'%album%,$if($eql($left(%album%,5),'Dance'),'Compilations\Dance\'%album%,%albumartist%\\%year% %album%))'\'
'REM above path definition puts songs with album name Pop <year> into folder %iTunesMediaPath%\Compilations\Pop\Pop <year>'

'REM songs with album name Dance <year> into folder %iTunesMediaPath%\Compilations\Dance\Dance <year>'
'REM songs with other album name into folder %iTunesMediaPath%\\%albumartist\\%year% %album%'

'REM Set the current filepathname   ... use Mp3tag placeholders'
'SET FilePathNow='%_path%

'REM Set the current folderpathname ... use Mp3tag placeholders'
'SET FolderPathNow='%_folderpath%

'REM Set the current filename       ... use Mp3tag placeholders'
'SET FileName='%_filename_ext%

'REM Set the progress counter'
'SET Progress='%_counter%
'ECHO. %Progress%: %FileName% -^> %FolderPathNew%'

'IF NOT EXIST "%FolderPathNew%" MD "%FolderPathNew%"'
'MOVE /Y "%FilePathNow%" "%FolderPathNew%" >nul'

'REM Codepage for Playlistfile must use UTF-8'
'chcp 65001 >nul'

'IF NOT ERRORLEVEL 1 ECHO.%FolderPathNew%%FileName%>>"%FilePathListfile%"'
'REM DIR /P/A/N/O "%FolderPathNew%%FileName%"'

'IF ERRORLEVEL 1 PAUSE'

'REM Codepage for filenames must use ANSI Western'
'CHCP 1252 >nul'

$loopend()

'PAUSE'
'IF EXIST "%FilePathListfile%" START "Result" /MAX "C:\Program Files (x86)\iTunes\iTunes.exe" "%FilePathListfile%"'
'DEL "%~0" 1>NUL 2>NUL & EXIT'
'REM ====================================================================='

Nochmals vielen Dank für Rat und Tat !