doppelte Alben zu finden

DetlevD hat am 2.3.09 hat eine Routine „erfunden“ um zu prüfen, oben in allen Tracks eines Albums die Jahreszahl einheitlich ist. Das Verfahren arbeitet zweistufig über eine Exportdatei. Siehe Aktion zum Überprüfen von YEAR und ALBUM

Ähnliches müsste doch möglich sein, um doppelte Alben zu finden, wenn der Albumname exakt gleich ist. Leider reichen meine Scriptkenntnisse nicht aus, um das anzuwenden. Wer traut sich das zu?

Manfred, im Prinzip geht das "Doppelte finden" so wie in dem Skript wie in diesem Beitrag:
Wie vorgehen um doppelte per %_md5audio% finden
Da muss wohl nur ein Name geändert werden.

Das ist das Exportskript Export Detect Same AlbumName.mte
(alles in eine Zeile schreiben):

$filename(O:\TEST\Export.DetectSameAlbumName.txt,UTF-8)$repeat('=',90)$char(13)$char(10)'List of files with the same Album Name.'$char(13)$char(10)$repeat('=',90)$char(13)$char(10)$loop(%ALBUM%)$loop(%ALBUM%)$loopend()$ifgreater(%_max_counter%,1,$char(13)$char(10)'Album: '%ALBUM%$char(13)$char(10)$loop(%ALBUM%%_path%)%_path%$char(13)$char(10)$loopend(),)$loopend()$char(13)$char(10)$repeat('=',90)$char(13)$char(10)'Totals - Searched Files: '%_total_files%' - Original File Size: '%_total_size%' - Playing Time: '%_total_time%$char(13)$char(10)%_datetime%' script generated by '%_app%' - http://www.mp3tag.de -'$char(13)$char(10)$repeat('=',90)

Beispiel:

================================================================================
List of files with the same Album Name.

Album:
O:\TEST\T1\Folder AAA\Andreas F. (featuring Andrea) - Du bist mein.mp3
O:\TEST\T1\Folder AAA\Andreas F. Feat Andrea - Du bist mein.mp3
O:\TEST\T1\Folder BBB\100% feat Jennifer John - Just Can't Wait.flac

Album: Album CCC
O:\TEST\T1\Folder CCC\01 - Artist CCC - Album CCC - Title CCC 1.mp3
O:\TEST\T1\Folder CCC\02 - Artist CCC - Album CCC - Title CCC 2.mp3
O:\TEST\T1\Folder CCC\03 - Artist CCC - Album CCC - Title CCC 3.mp3

Album: Black is more than no color
O:\TEST\Bob Dylan - The Basement Tapes, CD 01 - 04 - Tears of Rage.mp3
O:\TEST\T1\The Beatles - White Album, CD 02 - 07 - Goodnight.mp3

Export_Detect_Same_AlbumName.mte (648 Bytes)

DD.20110317.2040.CET

Export_Detect_Same_AlbumName.mte (648 Bytes)

Da ich dieses Script nicht verstehe, wage ich es auch nicht daran etwas zu ändern. Ich habe es unverändert benutzt. Es wird auch eine Datei ausgegeben. Diese enthält aber nicht die wirklich Doppelten. Es hätte als Ergebnis eigentlich "MTV Unplugged" kommen müssen, weil mit diesem Album-Titel mehrere Ordner existieren. Ich bleibe erstmal bei der manuellen Suche.

Das Skript aus Post #2 erzeugt eine Liste mit allen markierten Dateien, sortiert nach Album, innerhalb eines Albums nach Pfadname.
Die Albumnamen werden so wie sie sind verglichen, Groß-Kleinschreibung ist relevant, kein Fuzzy Vergleich, so wie es die $loop Funktion von Mp3tag eben macht.
In einem Testlauf über meine Testdateien hat das Skript genau das getan, was es tun soll.
Es hat alle die Dateien "eingesammelt", die denselben Albumnamen haben, und eine schöne Liste produziert.

Manfred, wenn du jetzt von "Ordnernamen" sprichst, dann ist das ein anderer Fall, denn zuvor in Post #1 hattest du noch von "Albumnamen" gesprochen.

DD.20110317.1959.CET

Da ich dieses Script nicht verstehe, wage ich es auch nicht daran etwas zu ändern. Ich habe es unverändert benutzt. Es wird auch eine Datei ausgegeben. Diese enthält aber nicht die wirklich Doppelten. Es hätte als Ergebnis eigentlich "MTV Unplugged" kommen müssen, weil mit diesem Album-Titel mehrere Ordner existieren. Ich bleibe erstmal bei der manuellen Suche.

Ich habe einfach das Wort "%ALBUM%" (vorher) gegen das Wort "%_directory%" (nachher) ausgetauscht (4x) und den Ausgabedateinamen geändert.
Das Skript funktioniert jetzt für Ordnernamen.

Das ist das Exportskript Export Detect Same FolderName.mte
(alles in eine Zeile schreiben):

$filename(O:\TEST\Export.DetectSameFolderName.txt,UTF-8)$repeat('=',90)$char(13)$char(10)'List of files with the same Folder Name.'$char(13)$char(10)$repeat('=',90)$char(13)$char(10)$loop(%_directory%)$loop(%_directory%)$loopend()$ifgreater(%_max_counter%,1,$char(13)$char(10)'Folder: '%_directory%$char(13)$char(10)$loop(%_directory%%_path%)%_path%$char(13)$char(10)$loopend(),)$loopend()$char(13)$char(10)$repeat('=',90)$char(13)$char(10)'Totals - Searched Files: '%_total_files%' - Original File Size: '%_total_size%' - Playing Time: '%_total_time%$char(13)$char(10)%_datetime%' script generated by '%_app%' - http://www.mp3tag.de -'$char(13)$char(10)$repeat('=',90)

Beispiel:

List of files with the same Folder Name.

Folder: Folder BBB
O:\TEST\T1\Folder BBB\11 - Artist - Album - Title.mp3
O:\TEST\T1\Folder BBB\12 - Artist - Album - Title.mp3
O:\TEST\T1\Folder BBB\13 - Artist - Album - Title.mp3
O:\TEST\T1\ThreeDots\Folder BBB\Best Of (Rocking Beatles Stones #0101) - 1999.mp3
O:\TEST\T1\ThreeDots\Folder BBB\verona pooth - ti amore - bfhmp3.mp3

Folder: Folder CCC
O:\TEST\T1\Folder CCC\01 - Artist CCC - Album CCC - Title CCC 1.mp3
O:\TEST\T1\Folder CCC\02 - Artist CCC - Album CCC - Title CCC 2.mp3
O:\TEST\T1\Folder CCC\03 - Artist CCC - Album CCC - Title CCC 3.mp3

Folder: Greatest Hits '99
O:\TEST\Alanis Morissette\Greatest Hits '99\02_Uninvited_AlanisMorissette_GH99_.mp3
O:\TEST\T1\Greatest Hits '99\01 - Unknown Title - Blues.mp3
O:\TEST\T1\Greatest Hits '99\02 - Unknown Title - Blues.mp3

Export_Detect_Same_FolderName.mte (671 Bytes)

DD.20110317.2025.CET

Export_Detect_Same_FolderName.mte (671 Bytes)

Schlimmer Fehler meinerseits: Das ist bei meiner Struktur NICHT das gleiche. Der Ordnername setzt sich zusammen aus %year% - %album%

Also ist bei dir der Inhalt der Variablen "%_directory%" gleich dem Inhalt der Variablenkombination "%year% - %album%"?
Was macht das für einen Unterschied?

Wenn nicht, dann weißt du ja jetzt wie es geht, wie das Skript für deinen Zweck anzupassen ist.
Nehme zum Beispiel das Skript" Export_Detect_Same_FolderName.mte" und ersetze alle Vorkommen von "%_directory" durch "%year% - %album%".
Ändere passend den Namen der Ausgabedatei.
Ändere vielleicht noch den Beschriftungstext von 'Folder: ' nach 'Ordner: '.

DD.20110318.0320.CET

... Das werde ich so machen. Allerdings kann ich mich im Augenblick aus Zeitgründen damit nicht länger beschäftigen. Ich komme zu einem späteren Zeitpunkt darauf zurück.

Danke nochmals!

Es wird immer eine Gesamtliste erzeugt. Die doppelten Alben folgen zwar unmittelbar hineinander, aber es ist unerlässlich, die Liste manuell durchzusehen. Ließe sich in den Script nicht etwa an geeigneter Stelle ein "###" einbauen, der nur die Doppelten kennzeichnet? Dann könnte nach diesem String mit einem Editor gesucht werden!

Hallo Manfred, ich verstehe deine Bemerkung nicht.
Die ausgebene Textliste zeigt, gruppiert nach dem verwendeten "Doppelt"-Kriterium, die zu diesem Kriterium gehörenden Dateien.
Textlisten sind dazu da, durchgesehen zu werden, mit den Augen und mit den Händen.
Wo meinst du könnte eine geeignete Stelle in der Textliste sein, um eine besondere Markierung einzufügen und nach welchem Sinn soll diese Markierung erfolgen?

DD.20121108.1705.CET

Meine Textdatei Export.DetectSameFolderName.txt sieht folgendermaßen aus:

... vorangestellt sind einige tausen Textzeilen
Folder: 2012 - A Joyful Noise, Extended Edition, CD 2
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\01. Love Long Distance, 1live In Dortmund.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\02. Psycho Killer, Gossip.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\03. Melody Emergency, 1live In Dortmund.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\04. Men In Love, 1live In Dortmund.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\05. Get A Job, 1live In Dortmund, Gossip.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\06. Perfect World, Rac Mix.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\07. Perfect World, Seamus Haji Remix Radio Edit.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\08. Perfect World, Playgroup Nude Mix.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\09. Move In The Right Direction, Css Remix.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\10. Move In The Right Direction, Seamus Haji Radio Edit.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\11. Move In The Right Direction.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\12. Get A Job, Peter Rauhofer Remix.mp3
W:\DAT\m\A\inB\mbaa9_noch-einige-cover\RPJ-Interpr\G\Gossip\2012 - A Joyful Noise, Extended Edition, CD 2\13. Get A Job, Scissor Sisters Remix.mp3

Folder: 2012 - Afterglow
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\00. __mp3-Container_Artwork.rar.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\01. Big train.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\02. This is your time.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\03. Midnight sun.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\04. Confessor.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\05. Cry freedom.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\06. Afterglow.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\07. Dandelion.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\08. The cicle.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\09. Common man.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\10. The giver.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr_doppelt\2012 - Afterglow\11. Crawl.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\00. __mp3-Container_Artwork.rar.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\01. Big train.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\02. This is your time.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\03. Midnight sun.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\04. Confessor.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\05. Cry freedom.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\06. Afterglow.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\07. Dandelion.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\08. The cicle.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\09. Common man.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\10. The giver.mp3
W:\DAT\m\A\inB\mBaa9\RPJ-Interpr\B\Black Country Communion\2012 - Afterglow\11. Crawl.mp3

Folder: 2012 - Apocalyptic Love
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\01. Apocalyptic Love.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\02. One Last Thrill.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\03. Standing In The Sun.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\04. You're a Lie.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\05. No More Heroes.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\06. Halo.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\07. We Will Roam.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\08. Anastasia.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\09. Not For Me.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\10. Bad Rain.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\11. Hard & Fast.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\12. Far and Away.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\13. Shots Fired.mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\14. Carolina (Bonus Track).mp3
W:\DAT\m\A\inB\Bock6\RPJ-Interpr\S\Slash\2012 - Apocalyptic Love\15. Crazy Life (Bonus Track).mp3
... es folgen noch einige tausend Textzeilen.

Der Sinn einer Makierung soll sein, dass ich mit dem Texteditor nach der Markierung "###" suchen (Strg-F) lassen kann. Wenn ich etliche tausend Zeilen mit den Augen überfliege, ist die Gefahr des Übersehens sehr groß.

Du hattest mal für mich ein Exportscript verify_album-year gestrickt, welches ich ständig benutze. Darin hattest so eine Markierung "###" eingebaut. Diese ist sehr hilfreich.

$filename(c:\temp\Verify.Album.Year.txt,ansi)
$loop(%artist%%album%)$loop(%album%,1)$puts(MyYear,$left(%year%,4))
$loopend()%artist% - %album% - %year%': '$if($eql($get(MyYear),),'### leer ###',$get(MyYear))
$loop(%track%)$if($eql($get(MyYear),$left(%year%,4)),,'### '%artist% - %album% - %track% - %title% - %year%' ###')
$loopend()$loopend()

Danke für deine Mühe mit dem Beispiel, aber ich kann keine Vereinfachung endecken.

Die Überschrift für jede Gruppe trifft auf jede Datei in dieser Gruppe zu.
Was hättest du davon, wenn zusätzlich noch vor jeder Gruppe '###' steht?
(Oder gar vor jeder Datei in der Gruppe?)
Jede Gruppe umfasst die "doppelten" bzw. "mehrfachen" Treffer gemäß "Doppelt"-Kriterium.

Wenn du in der Liste zu einer bestimmten Gruppe springen willst, dann musst du als Suchkriterium die "Überschrift der Gruppe" benutzen.
Zum Beispiel ...
Suche "Folder: 2012 - Afterglow"
... und der Texteditor wird seinen Cursor dorthin bringen.

Ich glaube, da liegt auf deiner Seite ein Verständnis-Irrtum vor, wie das Export-Skript arbeitet und wie man die Ergebnisliste liest, oder verstehe ich nicht was du meinst?

Vielleicht ist das "Doppelt"-Kriterium="Folder" falsch gewählt.
Denn wie du an deinem Beispiel siehst, so erhältst du immer den Inhalt mindestens eines gesamten Orders in einer Gruppe angezeigt.

Einen Bericht über doppelte Ordnernamen anzufertigen hat Sinn, wenn man ...
... doppelte Ordnernamen in unterschiedlichen Verzeichnisbäumen auf demselben Laufwerk oder mehreren Laufwerken hat ...
so wie in deinem Beispiel der Ordner "Folder: 2012 - Afterglow".

In diesem Fall, zeigen ja zwei unterschiedliche Teilpfade zu dem Ordner "Folder: 2012 - Afterglow".
Wenn das Exportskript den Unterschied bei diesem zweiten Kriterium (Teilpfade sind nicht gleich) irgendwie registrieren könnte, dann könnte man dieser Gruppe vielleicht eine besondere Markierung folgen lassen, voranstellen mit der Exportskriptsprache ist vermutlich nicht möglich oder würde die doppelte Zeit in Anspruch nehmen, nämlich einmal ohne Textausgabe und einmal mit Textausgabe durcharbeiten.

Oder man findet einen Weg, die Ausgabe für die Gruppen von Doppelten zu unterdrücken, bei denen das zweite Kriterium nicht erfüllt ist.

Eigentlich ist das eine neue Aufgabenstellung, in einer Menge von "Doppelten" irgendwelche "Unterschiede" zu erkennen.

DD.20121108.1928.CET

Ja, auf meiner Seite liegt ein Verständnis-Irrtum vor.
Wahrscheinlich ist das "Doppelt"-Kriterium="Folder" falsch? Ich möchte doppelte Alben finden. Meine Ordnerstruktur ist
...\%artist%\%year% - %album%\%track%. %title%

Siehe dort ...
doppelte Alben zu finden

DD.20121108.2000.CEt

... ich habe das dortige Script ausprobiert. Irgend etwas Grundsätzliches habe ich immer noch nicht verstanden. Leider. Das Script kann ich im Einzelnen nicht nachvollziehen.

Auch hier erhalte ich eine Gesamtliste aller Alben mit den Tracks; nicht nur die Doppelten.

Genau darum geht es mir ja. Ich habe dieses doppelte Album "Folder: 2012 - Afterglow" in der Gesamtliste nur gefunden, weil ich dessen Name schon vorher kannte.

Falls du einen Filter setzen kannst der dir nur eine Datei pro Ordner anzeigt (z.B. Tracknummer=1) dann sollte es gehen.

Oder über Textmakierung ***** finden. Die doppelten Albenordner findet man über der Textmakierung

$filename(Dupllikate - Album.txt,utf-8)
$loop(%album%)$loop(%album%)$loopend()$ifgreater(%_max_counter%,1,'Doppeltes Album:  '$if2(%album%,-- Tag leer --)

$loop(%_folderpath%,1)%_folderpath%
$loopend()$ifgreater(%_max_counter%,1,
******** Doppeltes Album oben ********,)


,)$loopend()

Der Zweck des Export-Skripts hier im Thread post #2 ist es, alle diejenigen Dateien in Gruppen anzuzeigen, bei denen der Inhalt im Tag-Feld ALBUM, also das Album des Musikstücks, derselbe ist.
Beispiel:
Wenn in 987 Dateien aus der Menge der untersuchten 1000 Dateien das Tag-Feld ALBUM gefüllt ist mit demselben Wert "ABC123", dann werden diese 987 Dateien unter der Gruppenüberschrift "ABC123" angezeigt.
Diese Gruppe enthält dann sozusagen 987 "Doppelte".

Diese Selbsterfahrung machen viele Menschen. Manfred, du hast mein Mitgefühl.
Die Mp3tag Skriptsprachen sind auch nicht so ohne Weiteres zu verstehen ...
... weil sie doch etwas speziell sind und die Dokumentation ist auch nicht so, wie man es manchmal besser bräuchte.

DD.20121109.1205.CET