Ffmpeg kann nicht in einer Batchdatei aufgerufen werden

Ffmpeg kann nicht in einer Batchdatei aufgerufen werden

Ich kodiere viele Videodateien mit ffmpeg neu, indem ich in der Eingabeaufforderung den folgenden Befehl verwende:

for %F in ("..\*.*") DO ffmpeg -n -i "%F" -c:v libx265 -c:a copy "%~nF.mkv"

Ich habe eine Batchdatei mit diesem Befehl erstellt und sie in meinen Profilpfad eingefügt. Aber wenn ich sie ausführe, erhalte ich Folgendes:

M:\>ff.bat
The following usage of the path operator in batch-parameter
substitution is invalid: %~nF.mkv"

For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.

M:\>for F" -c:v libx265 -crf 28 -c:a copy "F" -c:v libx265 -crf 28 -c:a copy "%~nF.mkv"

Vielleicht ein Problem mit Anführungszeichen?

Antwort1

Vielleicht ein Problem mit Anführungszeichen?

Nein, das ist ein Problem mit %. Verwenden Sie in der Befehlszeile ein einzelnes %. In einer Batchdatei verdoppeln Sie es %%.

Verwenden Sie daher Folgendes:

for %%F in ("..\*.*") DO ffmpeg -n -i "%%F" -c:v libx265 -c:a copy "%%~nF.mkv"

FORWenn Sie den Befehl in der Befehlszeile und nicht in einem Batchprogramm verwenden , verwenden Sie nur ein Prozentzeichen: %Ganstelle von %%G.

Quelle:For - Schleifenbefehle - Windows CMD - SS64.com


Weitere Informationen

Antwort2

Genau, Sie müssen doppelte Prozentzeichen statt einzelner verwenden. Stellen Sie außerdem sicher, dass der ffmpeg-Pfad in der Variable %path% enthalten ist, da Sie sonst den gesamten Pfad zum ffmpeg-Programm angeben müssen....

verwandte Informationen