Tools - MP3tag-Tags in einer Batch-Datei

Hallo miteinander,

ich habe einige Aufrufe von Irfanview in den Tools definiert, die ich gerne in einem Tools-Aufruf vereinen möchte. Daher benötige ich wohl statt des direkten Starts von Irfanview über das Tools-Menü den Umweg über den Start einer Batch-Datei, in der nacheinander Irfanview mehrfach mit unterschiedlichen Parametern gestartet wird. Die Parameter von Irfanview kann ich nicht in einen Aufruf zusammenfassen, da sie unterschiedliche Filenamen(muster) betreffen.

Während ich im direkten Aufruf von Irfanview über die Tools die MP3Tag-Tagnamen als Parameter verwenden kann, weiß ich nicht ob und wie das beim Aufruf über eine Batchdatei geht.

Wer hilft einem Batch-Laien auf die Sprünge?

Hm, so ohne konkretes Problem gibt es hier erst einmal ein paar Hinweise auf Threads betreffend Mp3tag und Irfanview ...
/t/11242/1
/t/11125/1
/t/9893/1
/t/3627/1

Siehe auch Linkliste in "Irfanview Help", Frequently Asked Questions,
"Misc: Some IrfanView users created tutorials for specific features/operations."

Du kannst eine Stapeldatei auch durch ein Mp3tag Exportskript erzeugen, und die Stapeldatei dann ausführen, was ich empfehle.

Der Aufruf eines Tools für "alle selektierten Dateien" bringt in der Regel nur Probleme mit sich, weil Mp3tag nicht auf das Ende eines Aufrufs wartet, sondern praktisch alle Aufrufe gleichzeitig ausführt, was meistens unweigerlich zu einer Blockade des Systems führt, bis hin zum Einfrieren und Absturz.

Wie was gelöst werden kann hängt auch irgendwie davon ab, wie und was getan werden soll, ...
... vielleicht willst du Irfanview x-mal nacheinander ausführen,
... vielleicht kann man Irfanview einmal zusammen mit einer Steuerungsdatei aufrufen, so dass ein einziger Aufruf von Irfanview den Batchprozess von sich aus erledigt?

DD.20140316.1635.CET

Vielen Dank für deine Hinweise.

ich will mal etwas konkreter werden. Ich vermute nämlich mein Vorhaben ist viel einfacher als Du im Moment denkst.

Ich arbeite nur einen Albumordner nach dem anderen ab, also nicht albumübergreifend. Dort habe ich vorweg mit Album Art Downloader, das ich aus MP3Tag mit Tools aufrufe, verschiedene Cover eines Albums automatisch in den Albumordner gespeichert. Sie bekommen dabei das Namensschema "%albumartist% - %album%.jpg", wobei bei mehreren eine Durchnummerierung nach (1) usw. hinter den Filenamen erfolgt.
Letztlich will ich auf diese vorhandenen JPGs 2 Irfanview-Parameterketten in einem Rutsch loslassen, die ich bisher einzeln aufgerufen habe.

1. %_folderpath%\\%albumartist% - %album%.jpg  /resize_long=800 /resample /aspectratio /one /convert=folder.jpg

2. "%_folderpath%\*.jpg" /one /convert=*.jpg /jpgq=80

Es wird also zunächst eine Datei auf 800x800 gebracht und dann als verkleinertes Duplikat mit dem Namen folder.jpg abgespeichert.
Dann werden in einem 2. Aufruf alle vorhandenen JPGs zusätzlich auf die Qualität 80 komprimiert.

Was ich will ist also nur diese beiden Tools-Aufrufe in einem Rutsch erledigen statt wie ich es schon lange mache in zweien hintereinander.

Das kann hier kein Problem bringen, da ich ja nicht das Tool auf alle selektierten Dateien loslasse sondern letztlich nur den einheitlichen Pfad der selektierten Dateien mit %_folderpath% und die einheitlichen Tags für Albumartist und Album aus MP3Tag auslese und Irfanview als Parameter übergebe.

Man könnte das vielleicht so machen, ein Beispiel ...

iviewbatch.cmd

@ECHO OFF
SET APP=P:\Programme\IrfanView\i_view32.exe
REM ECHO.APP="%APP%"
REM ECHO.P0="%~0"
REM ECHO.P1="%~1"
REM ECHO.P2="%~2"
REM ECHO.P3="%~3"
REM PAUSE
REM PUSHD "%~1"
CD /D "%~1"

ECHO.File: "%~1%~2 - %~3.jpg"
"%APP%" "%~1%~2 - %~3.jpg" /resize_long=800 /resample /aspectratio /convert="folder.jpg"

ECHO.File: "%~1*.jpg"
"%APP%" "%~1*.jpg" /one /convert=".\*.jpg" /jpgq=80

DIR /P/A/N/O "%~1*.*"
EXIT /B

Mp3tag Tool
Name: Irfanview Batch
Pfad:
Parameter:

'/D/Q/U/C T:\TEST\iviewbatch.cmd "'%_folderpath%'" "'%ALBUMARTIST%'" "'%ALBUM%'" & PAUSE'

... oder ...

'/D/Q/U/C T:\TEST\iviewbatch.cmd "'%_folderpath%'" "'%ALBUMARTIST%'" "'%ALBUM%'"'

DD.20140316.2010.CET

Vielen Dank für das, was Du mal wieder schnell aus dem Ärmel geschüttelt hast.
Ich habe nur rudimentäre Batch-Kenntnisse und beschäftige mich damit nur alle paar Monate mal, was bedeutet, dass ich dann quasi wieder von vorne anfange, weil vieles vorher erarbeitete Wissen dann wieder vergessen ist.

Ich habe Dein Beispiel durchgesehen und im Prinzip die Bedeutung der Code-Zeilen nachvollziehen können.
Allerdings stoße ich auf das Problem, bei mir offenbar der Aufruf der Parameter für CMD offenbar schon nicht klappt.
Es wird durch CMD lediglich ein "DOS-Fenster" im aktuellen Ordner des MP3-Files geöffnet mit Prompt geöffnet. Ein Aufruf von iviewbatch.cmd erfolgt gar nicht.

Hmm, wo genau in welchem Ordner ist die Datei "iviewbatch.cmd" gespeichert?
Das Beispiel "T:\TEST\iviewbatch.cmd" muss du mit dem tatsächlichen Dateipfad ersetzen.
Achtung, wenn der Dateipfad Leerzeichen enthält, dann muss er mit Anführungszeichen umgeben sein (double quote).
Ebenso anpassen in der cmd Datei den Dateipfad zu Irfanview.exe.

DD.20140319.1155.CET

iviewbatch im Programmordner von MP3Tag
Double Quotes in den Tools-Parametern sind gesetzt.
Der Dateipfad im der Batch wird ja bei der Variablen %APP% in Double-Quotes gesetzt.

Tools:

'/D/Q/U/C "C:\program files (x86)\mp3tag\iviewbatch.cmd" "'%_folderpath%'" "'%ALBUMARTIST%'" "'%ALBUM%'"'

iviewbatch.cmd

@ECHO OFF
SET APP=c:\program files (x86)\IrfanView\i_view32.exe
CD /D "%~1"

"%APP%" "%~1%~2 - %~3.jpg" /resize_long=800 /resample /aspectratio /convert="folder.jpg"
ECHO.File: "%~1*.jpg"
"%APP%" "%~1*.jpg" /one /convert="*.jpg" /jpgq=80

Selbst wenn ich mit Tools-CMD rumprobiere und als Parameter nur den Aufruf einer EXE im Root-Verzeichnis einer Harddisk eintrage. (also ohne große Pfadprobleme mit Leerzeichen usw.) wird die EXE nicht aufgerufen sondern nur das Konsolenfenster im aktuellen Albumordner angezeigt. Vielleicht bin ja schon nach langem Rumprobieren blind, aber das sieht für mich so aus, als ob schon der Parameter mit CMD gar nicht erst verarbeitet wird.

Was ich oben zuerst abgeliefert habe, das habe ich hier ausprobiert und es hat funktioniert, sonst hätte ich es ja nicht veröffentlicht, das versteht sich von selbst.
Vermutlich hat es hier keine Probleme gegeben, weil ich Leerzeichen in Datei- und Ordnernamen so gut wie nicht verwende (... das macht manches unkomplizierter).

Jetzt habe ich mehrere Tests gemacht mit Leerzeichen im Ordnerpfad zur Kommandodatei und auch mit Leerzeichen in folderpath, albumartist, album ... und bin zunächst etwas erschrocken, weil irgendwie alles nicht mehr so funktionieren will, wie es sonst gut funktioniert hat.

Aktiviere die ECHO Kommandos in der CMD Datei, also "REM " entfernen.
Dann siehst du was in der Kommandodatei als Parameter ankommt.

Der manuelle Aufruf von iviewbatch.cmd auf der DOS Kommandozeile funktioniert ... ?
iviewbatch eins zwei drei

DD.20140319.1406.CET

Das hatte ich schon immer beim Testen gemacht. Allerdings schrieb ich ja, dass der Prozessablauf gar nicht erst bis zur iviewbatch ankommt. Da wurde natürlich auch gar nichts angezeigt.

Es ist wie ich vermutet habe ist es der Aufruf in den Tools mit seinen Parametern, der nicht funktioniert.
Ich habe mit Quotes und Double-Quotes herumexperimentiert, ohne Erfolg. Erst das Verwenden eines Ordners ohne Leerzeichen für iviewbatch.cmd brachte den erwünschten Erfolg.

Der Parameter sieht jetzt so aus:
/D/Q/U/C c:\Testen\iviewbatch.cmd "%_folderpath%" "%ALBUMARTIST%" "%ALBUM%"

Hmm, dann sollte es aber doch mit einem Export Skript funktionieren.
Fremdsprachliche Sonderzeichen können problematisch sein.

Export.CMD.20140319.Irfanview.Resize.poster.mte (1.6 KB)

DD.20140319.1712.CET

Export.CMD.20140319.Irfanview.Resize.poster.mte (1.6 KB)