从%% i变量获取文件名

时间:2013-02-09 23:55:30

标签: windows batch-file ffmpeg cmd

我有一个脚本,使用ffmpeg将文件夹中的所有mkv转换为mp4s。缺点是它留下了.mkv扩展名并且只添加了.mp4(例如:file.mkv.mkp4)。我知道%~n可用于获取没有扩展名的名称,但我似乎无法弄明白。

这是我原来的剧本:

for %%i IN (*.mkv) DO (ffmpeg -y -ss 00:00:00 -threads 6 -i "%%i" -vcodec copy -f mp4 -strict experimental -acodec aac -ab 128k -ac 2 "%%i.mp4")

这是我尝试过的:

for %%i IN (*.mkv) DO (ffmpeg -y -ss 00:00:00 -threads 6 -i "%~ni.mkv" -vcodec copy -f mp4 -strict experimental -acodec aac -ab 128k -ac 2 "%~ni.mp4")

1 个答案:

答案 0 :(得分:3)

循环变量的百分号必须在批处理脚本中加倍,因此您必须使用%%~ni而不是%~ni。请参阅documentation

中的示例部分