MP3Tag als externes Tool in MP3Diag ...?

Hallo Gemeinde,

hat jemand von euch evtl. MP3Tag als externes Tool in MP3Diags eingebunden bekommen? Ich versuche mich seit ein paar Tagen an verschiedensten Syntax-Varianten, die MP3Diags Doku (MP3 Diags - Config - External tools) ist da leider sehr spährlich...

Sinn der Übung wäre, in MP3Diags als fehlerhaft markierte Tracks (Dateien oder Ordner) per Kontext-Menü in MP3Tag zu öffnen..

Hier ist der Kommandozeilen-Aufruf von MP3tag dokumentiert:

Spannend wird sein, wie man aus MP3diags den aktuellen Dateinamen rauskriegt - und das wäre dann mehr eine Frage für den Support bei MP3diags.

Hi.

Die Syntax für MP3Tag ist mir bekannt, und verwende ich anderswo bereits.

Da gibts keine (mir bekannten) Foren. War ein Schuss ins Blaue hier, vielleicht hat sich ja jemand schonmal damit auseinandergesetzt.

Also direkt in Mp3Diags kriege ich das auf Anhieb auch nicht hin.

ABER
Schreib Dir eine ganz kleine Batchdatei und definiere diese in Mp3Diags als externes Tool.

Inhalt in meiner StartMich.cmd
"C:\Program Files (x86)\Tools\Sound\Mp3tag\Mp3tag.exe" /fn:%1

Den Pfad zu Deiner Mp3tag-EXE musst Du natürlich anpassen.

In Mp3Diags sieht das so aus - entscheidend scheinen die Slashes (die von unten links nach rechts oben) zu sein. Nicht wie sonst üblich die Backslashes für die einzelnen Pfadteile nehmen:

In diesem Beispiel liegt die StartMich.cmd im gleichen Verzeichnis wie Mp3tag.exe. Das muss aber nicht zwingend so sein.

Wie das mit mehreren (markierten) Dateien aus Mp3Diags funktionieren soll, habe ich noch nicht rausgefunden.

1 Like

Die Hilfe sagt
"The names of the selected files will be added at the end. "
A
also müsste nach /fn nichts mehr kommen.

Aber MP3tag kann nur als 1 Instanz aufgerufen werden, so dass eine Dateiliste eigentlich nicht gehen wird.

Die Hilfe sagt
"The names of the selected files will be added at the end. "
also müsste nach /fn nichts mehr kommen.

Das hatte ich versucht, das funzt nicht.

Schreib Dir eine ganz kleine Batchdatei und definiere diese in Mp3Diags als externes Tool.

DAS isses. Zumindest auch hier: "Datei öffnen" geht schonmal, "Ordner" noch nicht, aber der Anfang ist gemacht.

Danke euch beiden!

Lass uns bitte wissen, wenn Du raufindest, wie man mehrere selektierte Dateien aus Mp3Diags in Mp3tag öffnen kann.

Ein Verzeichnis mit Mp3tag würden man mit
/fp:"<full-qualified path to directory>"
öffnen, aber ich sehe nicht, wie man Mp3Diags dazu bringen kann, einen Verzeichnisnamen zu übergeben.

Mit diesem Batch sollte es auch mit mehreren markierten Dateien aus Mp3Diags funktionieren:

:Loop

REM Wechsle die Ausgabe aus dem Batch in UTF-8
chcp 65001

REM Schreib alle uebergebenen Dateinamen OHNE Anfuehrungs- und Schlusszeichen in tmp1.m3u
ECHO %~1 >> %temp%\tmp1.m3u
REM Wechsle zum naechsten übergebenenen Dateinamen
SHIFT
REM Solange etwas uebergeben wurde, an Anfang des Loops springen
IF NOT "%~1"=="" goto :Loop

REM Mp3tag mit Inhalt der tmp1.m3u oeffnen
"C:\Program Files (x86)\Tools\Sound\Mp3tag\Mp3tag.exe" "%temp%\tmp1.m3u"

REM Temporaere Datei in temporaerem Verzeichnis loeschen, 
REM wird erst ausgefuehrt, wenn Mp3tag geschlossen wird.
DEL "%temp%\tmp1.m3u"

Lass mich wissen, ob es damit bei Dir auch klappt.

Hinweis:
Nicht vergessen, den Pfadnamen zu Deiner Mp3tag im Batch anzupassen.
Den Batch mit beliebigem Namen an beliebigem Ort speichern und als externes Tool in Mp3Diags wie oben erwähnt definieren.

2 Likes

ich habs anders versucht, scheitere aber noch an einem lächerlichen Syntax-Thema: Mit ...

@echo off
For /f "delims=/ tokens=1,2" %%i in ("%1") do (
set "PFAD=%%~di%%~pi"
)
echo --------------------
echo Pfad: %PFAD%
echo --------------------
"E:# Tools #\Mp3Tag\Mp3tag.exe" /fp:"%PFAD:~0,-1%"

... kann ich prinzipiell den Pfad der übergebenen Datei "rauslösen" ... allerdings mit abschließendem "Backslash", und den krieg ich gerade auch mit der String-Operation ":~0,-1%"

Abgesehen von der Syntax:
Was nützt Dich der Pfad (mit allen enthaltenen Dateien), wenn Du gezielt fehlerhaft markierte Dateien in Mp3tag nachbearbeiten willst?

Ich hab meine Tracks albenweise gespeichert, "alle" wäre dann maximal das gesamte Album. Das sind für mich auch eher Ausnahmen, i.d.R. würde mir "Track-Öffnen" reichen. Aber wenn wir schon dabei sind ... in ganz seltenen Fällen sind auch mal mehrere/alle Titel eines Albums von irgendwas betroffen, was MP3Diag anmosert.

Edit: Falls wir hier bzgl. des "workflow" aneinander vorbei reden: mir ist das Öffnen ALLER Dateien auf einmal gar nicht so wichtig, ich kann das trackweise/albenweise abarbeiten. Ich wollte in erster Linie den Komfort, MP3Tag ohne manuelles Öffnen der Order starten zu können.

Solange Du diese einzelnen Titel in Mp3Diags markierst, werden sie auch alle mit obigem Batch in die m3u-Playlist gespeichert und alle auf einmal mit Mp3tag geöffnet.
In Mp3Diags kann man mit "erster Track markieren und SHIFT letzter Track markieren" auch alle auf einen Rutsch selektieren (warum der übliche Shortcut CTRL + A nicht funktioniert, weiss ich nicht)

Lass mich wissen, ob es damit bei Dir auch klappt.

Funktioniert super! Danke!

Solange Du diese einzelnen Titel in Mp3Diags markierst, werden sie auch alle mit obigem Batch in die m3u-Playlist gespeichert und alle auf einmal mit Mp3tag geöffnet.

Korrekt. Nervt mich zwar gerade, dass ich das eigene Ding nicht hinbekommen habe (ich kann eine MP3 auf meine Batch droppen, und MP3Tag öffnet korrekt den Ordner, aber aus MP3Diag heraus funzt es nicht - aber ich geh jetzt den bequemen Weg und nehme Dein Script. :wink:

Freut mich, dass der Batch bei Dir auch funktioniert.

Wenn Du noch mehr Zeit investieren willst: Mp3Diags scheint den kompletten Pfad inkl. Dateiname und Endung immer mit Anführungs- und Schlusszeichen an ein externes Tool zu übergeben. Vielleicht liegts daran. Oder an den nicht korrekt umgewandelten Umlauten und Sonderzeichen, nur so als Ideen.

Da muss noch was anderes vorher schon nicht stimmen, abseits von Sonderzeichen u.ä:. Mein "Ordner-Script" ...

@echo off
chcp 65001
For /f "delims=/ tokens=1,2" %%i in ("%1") do (
set PFAD=%%~di%%~pi
)
echo %1
echo PFAD: %PFAD%
echo PFAD: %PFAD:~0,-1%
"E:# Tools #\Mp3Tag\Mp3tag.exe" /fp:"%PFAD:~0,-1%"
pause

... funktioniert, wenn ich eine MP3 auf das Script ziehe; für %1 und %PFAD% werden die erwarteteten Datei- / Pfadnamen zurückgegeben.

Starte ich das Ding aus MP3Diag, gibt mir für %1 ebenfalls noch den korrekten Dateinamen zurück, für %PFAD% aber nur noch das Laufwerk E, nicht das eigentliche Verzeichnis.

Ich verstehe gerade nicht, warum das Script auf einen (vermeintlich) identischen Input anders reagiert.

Ich mach erstmal ne Pause und morgen damit weiter ... :wink:

Dieser Code-Schnippsel aus einem Batch gibt Dir das Parent-Dir für den übergebenen Pfad in %1 zurück:

ECHO Uebergebener kompletter Dateiname: %1
FOR %%x IN (%1) DO SET "parent_dir=%%~dpx"
ECHO PD: %parent_dir%
"C:\Program Files (x86)\Tools\Sound\Mp3tag\Mp3tag.exe" /fp:"%parent_dir%"

Die beiden ECHO-Zeilen dienen nur zum debuggen, sind nicht wirklich nötig.
Der abschliessende Backslash im %parent_dir% stört übrigens Mp3tag nicht.


Aus der deutschen Hilfe für den FOR-Befehl:

Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

   ...
    %~dI        - erstellt nur den Laufwerkbuchstaben von %I.
    %~pI        - erstellt nur den Pfad von %I.
   ...

Diese Parameter können auch miteinander kombiniert werden:

%~dpI - erstellt den Laufwerkbuchstaben und Pfad von %I.

1 Like

das funktioniert! :wink:

Besten Dank fürs Mitgrübeln!

1 Like