使用Windows批处理脚本为文件夹中的每个文件应用命令

Dob*_*989 0 windows for-loop ffmpeg batch-file

我试图弄清楚如何创建一个脚本,该脚本将所有视频文件放在一个文件夹video \ *。*中,然后在每个文件上使用ffmpeg并将文件输出到文件名相同的convert \ *。mp4。

但是,我无法弄清楚如何使for循环正常工作,因此我可以提取正在处理的文件的名称和扩展名。

for %%f IN (videos\*.*) DO (convert.bat %%f)
Run Code Online (Sandbox Code Playgroud)

转换

ffmpeg.exe -i %1 -f mp4 converted\%~n.mp4
Run Code Online (Sandbox Code Playgroud)

我尝试过使用双引号和不使用双引号。但是,它将无法识别该文件。

Dav*_*ann 5

一个衬里批处理文件命令:

for %%F in (videos\*.*) do ffmpeg.exe -i "%%~fF" "%%~dpF\converted\%%~nF.mp4"
Run Code Online (Sandbox Code Playgroud)

拥有两个衬板:(添加了call命令,引号和~

for %%F IN (videos\*.*) DO (call convert.bat "%%~fF")
Run Code Online (Sandbox Code Playgroud)

convert.bat(带有~,选项和引号的正确参数用法)

ffmpeg.exe -i "%~f1" "%~dp1\converted\%~n1.mp4"
Run Code Online (Sandbox Code Playgroud)

for /?call /?ffmpeg寻求帮助。