parent_directory umbenennen


#1

Hallo!

  1. Was ich habe Sehr viele Lieder, so organisiert: music/stil/Komponist/Werk/Vn/CDx/lied.flac
    • "music/stil/Komponist/Werk/V" ist bei allen identisch
    • CDx geht von 1 bis 3
    • lied.flac hat den album-tag "das ist eine lange Werkbezeichnung, Volume n: der spezifische Album-Tag"
    Alle Lieder haben also im album-tag den Teil: "das ist eine lange Werkbezeichnung, Volume" gemeinsam, jeweils einige Dutzend, nämlich diejenigen, die unter dem gleichen Vn liegen, haben einen gemeinsamen spezifischen Album-Tag-Teil
  2. Was ich möchte Die Ordner 'Vn' umbenennen in 'Vn der spezifische Album-Tag' (damit man den Inhalt erkennen kann).
Wenn ich das rekursiv durchlaufen lasse, wird der arme Ordner 'Vn' halt dutzende Male unnötig umbenannt, da er ja schhon nach dem ersten in ihm enthaltenen Lied den korrekten Dateinamen bekommen hat. Ist aber egal, Zeit spielt keine Rolle.

Hier Überordner ging es um etwas Ähnliches. Gibt es einen Befehl "$rename" statt "$replace"? Sonst habe ich später zigtausende leerer Ordner, die ich irgendwie löschen muß :frowning:

Das ganze starte ich dann in, indem ich alle (viele tausend) Dateien auswähle, dann Konverter/Tag -Dateiname anklicke, dann so etwas ähnliches wie in dem Forumsbeitrag eintippe und dann die Luft anhalte..richtig?

Vielen Dank!


#2

Nein. Nicht richtig.
Also jedenfalls nicht ganz.
Es gibt in MP3tag prinzipiell 2 Möglichkeiten, die Dateistruktur zu bearbeiten:

  • Mit dem Converter benennst du bestehende DATEIEN um
  • Mit einer Aktion vom Typ "Tagfeld formatieren" kannst du das Pseudofeld (=Pseudotag) "_directory" umbenennen.
    Mit dem Converter wird wirklich jede Datei angefasst und mit einem vollqualifizierten Dateinamen angelegt.
    Dieser Weg ist vernünftig, wenn eine Struktur zuvor Kraut und Rüben war und wirklich von Grund auf neu angelegt werden soll. Ggf. werden neue Verzeichnisse angelegt. Es werden keine leeren Verzeichnisse gelöscht oder umbenannt.
    Der Weg mit der Aktion nimmt eine bestehende Struktur und benennt nur um, es werden keine neuen Verzeichnisse angelegt.

Vielleicht ein Workaround:
Du nimmst den Konverter, gibst aber einen absoluten Pfadbestandteil an:

e:\NEUmusic\stil\Komponist\Werk\Vn\CDx\lied.flac

Die neu bearbeiteten Dateien sind dann alle in "neumusic", die alte Struktur in music kannst du dann löschen (wenn zuvor alle Dateien in dieser Struktur der Umbenennung unterworfen wurden)

Danach kannst du NEUmusic in music umbenennen und alles is in der neuen Struktur.

Als Warnung: es werden keine Dateien mit umbenannt, die MP3tag nicht unter Kontrolle hat. In der Grundeinstellung sind dies die Playlisten, Bilddateien, weitere. Wenn solche Dateien in der alten Struktur enthalten sind, würden die durch das Löschen der alten Struktur verloren gehen.

Kurz und gut: wenn du nicht weißt, ob deine Struktur eigentlich schon richtig ist und nur neu benannt werden muss oder ob auch neue Verzeichnisse angelegt werden müssen, wird wohl eine fallweise Betrachtung nötig werden.


#3

Gerade nocheinmal nachgesehen: Nicht-Audio-Dateien sind entweder außerhalb dieser Struktur ausgelagert oder unwichtig. Das wäre also kein Problem.

Ich müßte also tatsächlich nur die Umbenennung der Über-Übergeordneten Ordner machen (wenn man gerade dabei ist, wäre natürlich schön, wenn auch
aus

/.../.../.../CD1
/.../.../.../CD1_der spezifische Teil des Album-Tags

werden könnte, ist aber weniger wichtig

Auf jeden Fall vielen Dank!

Letzte Frage: Die Daten liegen auf einem NAS, das mit WLAN an den Rechner, auf dem mp3tag läuft, angebunden ist. Umfangreiche Kopierarbeiten mache ich deshalb über ein Web-interface auf dem NAS oder per SSH. Gibt's irgendeinen Trick, das auch von Windows zu machen - sonst dauert das Ganze einige Tage, wäre aber auch ncit das Schlimmste


#4

Du könntest im Windows Explorer das Verzeichnis auf dem NAS als Netzlaufwerk hinzufügen (Menü Extras im WE, dann \\<verzeichnisname> als Adresse und einen geeigneten Laufwerksbuchstaben vergeben, z.B. N:.
Der Pfad für die Namen ändert zu n:\NEUmusic......


#5

Ändert sich dadurch etwas im Vergleich zur Arbeit mit \\IP-Adresse\music...... ?
Ich meinte, kann man den Prozess "auf dem Laufwerk" laufen lassen, ohne, daß die Daten erst zum Rechner und dann wieder zurück kopiert werden müssen - oder macht das Vorgehen mit den LW-Buchstaben genau das.


#6

Das kommt darauf an ...
... wenn Dateien inhaltlich bearbeitet werden sollen, dann müssen sie in den Hauptspeicher des Computers gelangen ...
... wenn Dateien auf einem Laufwerk nur einen neuen Namen erhalten, oder nur an einen anderen Ort auf derselben Festplatte verschoben werden sollen, dann müssen sie nicht unbedingt in den Hauptspeicher des Computers geholt werden.

Das ist alles eine Frage der Intelligenz des Betriebssystems, der Festplattenverwaltung des NAS, des Anwendungsprogramms und und und.

Das Substituieren eines Netzwerklaufwerks mit einem lokalen Laufwerkbuchstaben ist immer dann notwendig, wenn Software im Spiel ist, die mit langen Netzwerkpfaden nicht umgehen kann.

Auf jeden Fall macht ein Laufwerkbuchstabe die Lage übersichtlich und die Dateipfade sind etwas kürzer.

Du solltest es ausprobieren und deine Erkenntnisse hier offenbaren, denn zu diesem Bereich sind die Erfahrungen noch sehr spärlich hier im Forum.

DD.20110327.2107.CEST


#7

na ja, irgendwie müssen die daten natürlich im Speicher des Computers ankommen, damit der Prozessor drauf zugreifen kann - also so völlig ohne kopieren wird es nicht gehen.
Die Beschleunigung tritt womöglich dadurch auf, dass kein lahmes Java-Interface dazwischenfunkt (oder was immer das NAS an Server-SW bietet - keine Beleidigung beabsichtigt).
Begrenzend ist aber bestimmt die Netzwerkgeschwindigkeit im Vergleich zur Busgeschwindigkeit des Festplattenkontrollers.


#8

I'll do so. Aber erstmal brauche ich die mp3tag-Zeile zum ausführen


#9

Hat jemand vielleicht eine Idee zum Umbenennen der Ordner?


#10

Mir ist deine Pfaddarstellung etwas zu abstrakt.
Könntest du das ma mit einigen konkreten Pfadeangaben als Beispiel verdeutlichen?


#11

Beispiele (fürs Prinzip, gucke jetzt nicht extra nach):

Ist:
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1\CD1\3te_1Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1\CD1\3te_2Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1\CD2\4te_1Satz.flac
(AlbumTag jedes Liedes: "Beethovens Gesamtwerk, Volume 1: die Symphonien")

\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V2\CD1\Klavierkonzertnnn.flac
usw
(AlbumTag jedes Liedes: "Beethovens Gesamtwerk, Volume 2: die Konzerte")

Soll:
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1\3te_1Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1\3te_2Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD2\4te_1Satz.flac

\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V2_die_Konzerte\CD1\Klavierkonzertnnn.flac

Oder:
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1__die_Symphonien\3te_1Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1_die_Symphonien\3te_2Satz.flac
\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD2_die_Symphonien\4te_1Satz.flac

\\ip-Adresse\music\Klassik\Beethoven\Gesamtwerk\V2_die_Konzerte\CD1_die_Konzerte\Klavierkonzertnnn.flac


#12

Ich sehe keine Chance, die Dateinamen in einem Rutsch umzubenennen, wenn die Basisdaten nicht die gewünschte Struktur wiederspiegeln.
Also: wenn der im Dateinamen gewünschte Indikator "Volume" nicht ein einzelnes Tag ist, kann er nur mit großen Mühen aus dem Albumnamen extrahiert werden. Und dann wahrscheinlich auch nur für Beethoven und nicht noch für andere.
Dasselbe gilt für die Unterteilung Beethoven und Gesamtwerk: das eine Mal hast Du das als ein Datum (im Albumnamen) im Dateinamen willst Du es aber trennen. Das passt nicht.

Der einzige Ausweg wäre, entweder in mehreren Schritten erst ein benutzerdefiniertes Feld füllen und das dann als Quelle nehmen oder gleich eigene richtig gefüllte Felder anlegen oder die Verzeichnisstruktur den vorhandenen Tags anpassen.


#13

Wenn ich das Beispiel richtig deute, dann willst du doch nur den Textteil im Tag-Feld ALBUM rechts neben dem letzten Doppelpunkt extrahieren und dann dem Verzeichnisnamen von %_parent_directory% und eventuell auch dem Verzeichnisnamen von %_directory% anhängen.
Ist das so richtig?

Wenn ja, dann geht das so für Ordner und Überordner gleichzeitig ...

Aktion "Tag-Feld formatieren"
Feld: _DIRECTORY
Formatstring:

'..\'%_parent_directory%$regexp($regexp(%ALBUM%,'^.+?:\s*(.*)$',' $1'),'\s','_')'\'%_directory%$regexp($regexp(%ALBUM%,'^.+?:\s*(.*)$',' $1'),'\s','_')

von:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1\CD1\4te_1Satz.mp3"
nach:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1_die_Symphonien\4te_1Satz.mp3"

Nur für den Überordner ...

Aktion "Tag-Feld formatieren"
Feld: _DIRECTORY
Formatstring:

'..\'%_parent_directory%$regexp($regexp(%ALBUM%,'^.+?:\s*(.*)$',' $1'),'\s','_')'\'%_directory%

von:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1\CD1\4te_1Satz.mp3"
nach:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1_die_Symphonien\CD1\4te_1Satz.mp3"

Nur für den Ordner ...

Aktion "Tag-Feld formatieren"
Feld: _DIRECTORY
Formatstring:

%_directory%$regexp($regexp(%ALBUM%,'^.+?:\s*(.*)$',' $1'),'\s','_')

von:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1\CD1\4te_1Satz.mp3"
nach:
"M:\music\Klassik\Beethoven\Gesamtwerk\V1\CD1_die_Symphonien\4te_1Satz.mp3"

Für alle Beispiele mit Inhalt von ALBUM:

'Beethovens Gesamtwerk, Volume 1: die Symphonien'

DD.20110401.1022.CEST


#14

Genau das ist es!

Mensch, vielen Dank für die Mühe. Du hast Dir ja richtig arbeit gemacht. Heut eiwrd mir das zu spät, ich komme erst mo dazu, es auszuprobieren, Rückmeldung erst dann, ok?

Nochmal vielen Dank!

Hatte ich das zu abstrakt erklärt?


#15

Hast du definitiv. Detlev hat deine Problem schön auf den Punkt gebracht. Wenn man es erstmal so formuliert hat, kann man auch auf eine Lösung kommen.


#16

Wunderbar. Er verschiebt zwar nur den Inhalt der ersten CD, aber die weiteren CDs kann ich dann einfach herüberziehen, das ist schnell gemacht.

Allerdings möchte mp3tag dann noch "die Dateien bearbeiten", nach Abbrechen dauert es lange (ca 60 sec, ehe er mit "0 Dateien geändert, 0 tags umformatiert" o.ä. abschließt, dann kann man die nächsten Daten in Angriff nehmen


#17

Ich bin etwas erstaunt, dass es Probleme gibt, und dass du manuell "die weiteren CDs ... herüberziehen" musst.
Normalerweise geschieht das alles in einem Vorgang.
Sobald der Überordner umbenannt ist (was schon beim Zugriff auf die erste Datei im Ordner geschieht - alle folgenden Dateien werden übersprungen), sind alle darin liegenden Ordner und Dateien "mitgewandert".
Wenn ich es richtig verstehe, dann wird von Mp3tag technisch nichts anderes als ein "MOVE" Befehl ausgeführt, im Prinzip wie der DOS Befehl "MOVE" es auch macht (kannst du manuell ja ausprobieren).

Übrigens ...

  • die Ordner-Ebene "CD1" ist nicht der Überordner, sondern der Ordner
  • die Ordner-Ebene "V1" ist der Überordner
    ... nur noch einmal wiederholt, damit kein Missverständnis aufkommt.

Die ungewöhnlich lange Wartezeit ist wahrscheinlich auf die besondere Situation mit dem Netzwerklaufwerk und auf den Dateityp flac zurückzuführen.

Eigentlich habe ich eher den Eindruck, dass es eben nicht wunderbar ist.

DD.20110404.2322.CEST


#18

hast recht, ist auch nicht wunderbar, aber

  1. Du hast mir geholfen und
  2. es ist nichts gelöscht/"kaputt gemacht" worden
  3. es funktioniert mehr als nur ansatzweise.

Sitze gerade nicht vor dem Rechner, aber folgendes passiert:

Wähle z.B. 80 Dateien aus einem Vol (=Überordner, klar) aus, Aktion/Tag formatieren/gebe Deinen regulären Ausdruck/die Skriptzeilen ein, return.
Dann erscheint

  1. kl. Fenster: "Schreibe Tag" o.ä.

  2. größeres Fenster: "verschiebe x Dateien"

  3. Fenster geht zu, verschiebt tatsächlich alle Dateien, die in dem ersten CD-Ordner sind in einen korrekt umbenannten neuen CD1-Ordner.

Aber er bleibt beim 1. Fenster hängen, schreibt nix, läßt sich nicht unterbrechen: "abbrechen" dauert ca 60 Sek. Alle weiteren Ausgewälten Stücke, die in den neu zu erstellenden 2. und 3. CD-ORdner verschoben werden sollten, werden nicht verschoben, ein solcher Ordner wird auch nicht erstellt.

Sieht so aus, als habe mp3 nicht die Schreibrechte in die Dateien. Aber mkdir und Verschieben darf es???
Berechtigung sollte eigentlich als Nicht-Root ausreichen. Kann aber mal das Netzwerk-Laufwerk als Root mounten, probiere ich heute Abend mal aus.


#19

Ich habe es noch einmal geprüft ... auf einer lokalen Platte funktioniert das Umbenennen der Überordner und/oder Ordner fehlerfrei, sogar das Rückgängigmachen arbeitet fehlerfrei.

Mit der Ausnahme, dass in beiden Fällen, leere Ordner zurückbleiben, die man dann schließlich selbst entfernen muss.

Viel Erfolg!

DD.20110405.1745.CEST


#20

Habe es jetzt mit dem stumpfen brute-force approach gemacht: pro Vol je die erste Datei mit deiner Skript-ZEile bearbeitet, gewartet, bis die Fertig-Meldung kam, ca 2 min, dann die übrigen Ordner des Vol's auf dem NAS in den neuen Vol_Album-Tag-Ordner verschoben. Hat zwar lange gedauert, konnte ich nebenbei machen, bequemer als Stunden an den Berechtigungen herumzubasteln. Jetzt ist es fertig, vielen Dank!