为什么这在 BATCH、FOR 命令中不起作用?独立时可以工作

为什么这在 BATCH、FOR 命令中不起作用?独立时可以工作

我想从影片中导出图像作为缩略图,我正在使用ffmpeg。我的批处理命令:

DEL *.jpg

setlocal
dir *.mp4 /a:-d /b > foldersTemp.txt
FOR /f %%A IN (foldersTemp.txt) DO ffmpeg -i %%A -vf fps=1/200 %%Athumb%04d.jpg
endlocal

DEL foldersTemp.txt

但每部影片只能创建一个。如果我使用该ffmpeg命令,它就可以工作。我担心%该命令会造成混淆

答案1

您的文件名可能包含空格。

添加参数“tokens=*”以提取整行(而不是用空格分隔)。此外,您还需要用双引号将输出文件名括起来。

FOR /f "tokens=*" %%A IN (foldersTemp.txt) DO ffmpeg -i %%A -vf fps=1/200 "%%Athumb%%04d.jpg"

相关内容