
我在提示符號下使用以下命令使用 ffmpeg 重新編碼大量視訊檔案:
for %F in ("..\*.*") DO ffmpeg -n -i "%F" -c:v libx265 -c:a copy "%~nF.mkv"
我創建了一個包含此命令的批次檔並將其放入我的設定檔路徑中。但是當我運行它時,我得到以下資訊:
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"
可能是引號有問題?
答案1
可能是引號有問題?
不,這是一個問題%
。在命令列上使用單一%
.在批次檔中將其加倍%%
。
因此,請使用以下內容:
for %%F in ("..\*.*") DO ffmpeg -n -i "%%F" -c:v libx265 -c:a copy "%%~nF.mkv"
如果您在命令列而不是在批次程式中使用該
FOR
命令,請僅使用一個百分號:%G
而不是%%G
。
來源:For - 循環命令 - Windows CMD - SS64.com
進一步閱讀
答案2
確切地說,您必須使用雙百分號而不是單一百分號。還要確保 ffmpeg 路徑位於 %path% 變數中,您必須指定 ffmpeg 程式的整個路徑...