我找到了如何使用批处理文件中的以下代码批量转换MP3到MP4:
for %%f in (*.mp3) do ffmpeg -i %%f -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest %%~nf.mp4
它工作正常,除非FILENAME中有空格:FILENAME.mp3工作正常,但FILE NAME.mp3给出错误“没有这样的文件或目录。”
我尝试在%% f之前和之后插入“delims =”,但它一直说它是意外的。有什么想法吗?
感谢。
答案 0 :(得分:1)
for %%f in (*.mp3) do ffmpeg -i "%%f" -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest "%%~nf.mp4"
一般"quote filenames that may contain spaces"
"delims="
只能与
for /f
一起使用
for /f "delims=" %%f in (...
for
的部分主要是从文件中读取行。
使用'dir /b /a-d filemask'
- 包括引号,为for /f
提供要处理的文件名列表。 /b
表示"基本形式" (仅限姓名)和/a-d
表示"没有目录"。
如果您的文件名包含空格之类的分隔符,请使用`" delims ="否则隐含的"令牌= 1"将截断在第一个分隔符处应用的值。