Nur bestimmte Dateien eine Verzeichnisbene nach oben verschieben

Hallo und guten Morgen,

ich versuche, MP3-Dateien mittels dem MP3-Tag-Editor eine Verzeichniseben nach oben zu verschieben.

Dazu müssen folgende Voraussetzungen erfüllt werden :

  • ist die Datei in einem Verzeichnis, welches mit den Buchstaben "CD" beginnt (kann groß- und/oder kleingeschrieben sein), soll die Datei eine Verzeichnisebene nach oben verschoben werden
  • ist die Datei in einem Verzeichnis, welches NICHT mit den Buchstaben "CD" beginnt, soll die Datei NICHT verschoben werden
Die Dateien sind vom Namen her so aufgebaut, dass es beim Verschieben keine Probleme mit etwaigen doppelten Dateinamen geben wird.

Ich habe in diesem Forum gelesen, dass man dieses wohl mittels einer Aktion (Aktion "Tagfeld formatieren" --> Feld: _FILENAME) irgendwie umsetzen könnte. Leider hab ich keine Ahnung wie ich die Abfrage, in welchem Verzeichnis sich die Datei befindet und ob diese verschoben werden soll, in die Aktion einbauen kann.

Kann mir dazu jemand helfen, diese Aktion zu erstellen ????

Vielen Dank für jeden Tipp und jede Hilfe
Fraubi

Du kannst ja mal nach diesen Dateien filtern:
%_path% HAS \CD

Und dann gibst du in der Funktion Konverter>tag-Tag für _DIRECTORY
den absoluten Pfad an:
e:\Musik\%albumartist%\%year% - %album%
Den Dateinamen lässt du für _DIRECTORY weg.
Das Problem mit dem Umbenennen des Dateinamens ist, dass du nachher jede Menge leere Ordner namens CD hast. Deshalb solltest du das Verzeichnis umbenennen.

Siehe dort ...
/t/13316/1
... vielleicht passt das auch für deinen Fall.

Konverter "Tag Tag" ... oder ... Aktion "Tagfeld formatieren" Feld .......: _FILENAME Formatstring: %_folderpath%$if($eql($strstr(%_directory%,'CD'),1),'..\',)%_filename% ... oder ... Formatstring: %_folderpath%$ifgreater($strstr(%_directory%,'CD'),0,'..\',)%_filename%

Achtung:
Es bleiben leere Ordner zurück; Rückgängigmachen ist möglich.

... oder ...

Konverter "Tag Tag" ... oder ... Aktion "Tagfeld formatieren" Feld .......: _DIRECTORY Formatstring: %_folderpath%$if($eql($strstr(%_directory%,'CD'),1),'..\..\',) ... oder ... Formatstring: %_folderpath%$ifgreater($strstr(%_directory%,'CD'),0,'..\..\',)

Achtung:
Es bleiben keine leeren Ordner zurück; Rückgängigmachen führt zu fehlerhafter Ordnerstruktur.

DD.20160304.1035.CET

Vielen Dank Euch beiden, dass Ihr Euch mit meinem Problem beschäftigt habt und auch daran gedacht habt, dass ja leere Ordner übrigbleiben.

@DetlevD

Deine erste Variante funktioniert prima. Dadurch, dass aber leere Ordner verbleiben, wäre für mich die Variante 2 besser.

So wie Du es in der Variante 2 beschrieben hast, kam immer erst eine Fehlermeldung. Ich habe dann noch %_filename% an die Befehlsfolge gehängt. Dann kam kein Fehler mehr, aber die Dateien, die sich in einem Ordner mit "CD" befinden werden zwei Verzeichnisebenen nach oben verschoben. Auch werden keine Ordner gelöscht. Könntest Du Dir das evtl. nochmal anschauen ? Für mich ist die Syntax in der ganzen Befehlsfolge absolut undurchsichtigt, bin daher nochmal auf Hilfe angewiesen.

Was bewirken in der Variante 2 eigentlich die Unterschiede in den beiden Befehlszeilen ?

Besten Grüße und danke für die Unterstützung
Fraubi

Ich nochmal,

hatte einen Fehler bei der Angabe des Tagfeldes eingebaut (grummel). Sieht erstmal gut aus, ich teste aber nochmal durch. Melde mich dann..........

Viele Grüße
Fraubi

So, ich habe ausführlich getestet und es hat alles geklappt.

Recht herzlichen Dank für die Unterstützung und die schnelle Hilfe.

Zwar hat sich noch eine weitere Frage erheben, dafür mache ich aber wegen der Übersichtlichkeit einen neuen Thread auf.

Viele Grüße
Fraubi