【问题标题】:getting file name from for %%i variable从 %%i 变量中获取文件名
【发布时间】:2013-01-25 10:13:50
【问题描述】:

我有一个脚本,它使用ffmpeg 将文件夹中的所有 mkv 转换为 mp4。缺点是它离开了 .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")

【问题讨论】:

    标签: windows batch-file ffmpeg cmd


    【解决方案1】:

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

    【讨论】:

    • 那个链接失效了,正确的位置是:technet.microsoft.com/en-us/library/bb490869.aspx
    • @MarcusJ 实际上是 technet.microsoft.com/en-us/library/bb490909.aspx,但感谢您的提醒。固定。
    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2011-09-14
    • 1970-01-01
    相关资源
    最近更新 更多