mclach wrote: 2020-06-06, 21:15 UTC
Ich habe eine Batch-Datei, die alle Dateien des aktuellen Verzeichnisses in MP3 umwandelt.
Das würde ich gerne in die UserCmd einbauen.
Batch (hier im Beispiel auf die m4a-Dateien reduziert):
Code: Select all
FOR %%a IN (*.m4a) DO
(
"c:\Program Files\VideoLAN\VLC\vlc.exe"
-I dummy "%%a" --sout=#transcode{vcodec=none,acodec=mp3,ab=168,channels=2,samplerate=44100}:std{access="file",mux=mp3,dst="%%~na.mp3"}
vlc://quit
)
Wo muss ich in der Parameter-Zeile welche Variable setzten,
damit der TC den VLC mit den Parametern für jede selektierte Datei aufruft und diese am besten im Ziel-Verzeichniss ablegt?
Code: Select all
[em_VLC-Batch-2-MP3]
cmd= "c:\Program Files\VideoLAN\VLC\vlc.exe"
param= "-I dummy "%%a" --sout=#transcode{vcodec=none,acodec=mp3,ab=168,channels=2,samplerate=44100}:std{access="file",mux=mp3,dst="%%~na.mp3"}" vlc://quit
path=
menu=
button=
iconic= "1"
Im Prinzip geht das wie Folgendermaßen:
Um eine Batchdatei in ein UserCmd zu packen,
verwende im user command die
CMD.exe als Interpreter bei "cmd="
und packe deinen aufzurufenden Befehl, inkl. dessen Parameter (vlc.exe .. .. .) in den UserCmd-Parameter (param=).
Damit wird der Parameter mit dem angegebenen Interpreter ausgeführt, in diesem Fall ganz wie eine DOS-Batchdatei.
Beispiel(!):
Code: Select all
[em_VLC-Batch-2-MP3]
cmd= cmd /k
param= FOR %%a IN (*.m4a) DO ( "c:\Program Files\VideoLAN\VLC\vlc.exe" -I dummy "%%a" --sout=#transcode{vcodec=none,acodec=mp3,ab=168,channels=2,samplerate=44100}:std{access="file",mux=mp3,dst="%%~na.mp3"} )
Für """am besten im Ziel-Verzeichniss ablegt""" musst du den TC-internen Parameter "%T" verwenden >>> dst="
%T\%%~na.mp3"
Im offenen Buttondialog klicke auf [Hilfe] um mehr darüber zu erfahren.
Um Befehle auf der Kommandoline zu verknüpfen, verwende das Kaufmannsund "&" >>>
& vlc://quit , bzw. &&.
Da solche DOS-Batch oftmals recht tricky sind und zwischen verschiedenen OS anders reagieren,
und da nicht jeder dein verwendetes Programm zur Verfügung hat, musst du erst selbst noch etwas
experimentieren, und auf die korrekte Syntax und das Quoting achten.
In einer Kommandbox tippe die folgenden Befehle für deren Hilfe:
cmd /?
for /?
oder HELP für eine Übersicht an Befehlen.
Allerdings ist eine externe Batch- /Skriptdatei oftmals trotzdem sinnvoller und vor allem einfacher
umzusetzen, da der zwischengeschaltete Interpreter "TotalCmd" weg fällt. Sind halt zwei Stellen
und zwei Dateien, mit denen man dann arbeiten muss, aber so ist es weniger kompliziert
bzgl. Anführungszeichen und Verschachtellung von Befehlen.
Die TC-internen Parameter wie %P , %T und %L, kannst du auch beim Aufruf einer externen
Batch/Skript übergeben, und dort abfragen und dann verarbeiten:
cmd= "c:\Program Files\VideoLAN\VLC\vlc-batch.CMD"
param= "%P" "%T"
vlc-batch.CMD
SET SRC=%1
SET TRG=%2
HTH?
