windows - 从 %%i 变量获取文件名

标签 windows batch-file ffmpeg cmd

我有一个脚本可以使用 ffmpeg 将文件夹中的所有 mkvs 转换为 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")

最佳答案

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

关于windows - 从 %%i 变量获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793024/

相关文章:

windows - 在失焦时接受输入

Windows 中的 Python-Can 或 Pyserial

windows - 任何让我重新登录 "locked"Windows 7 的 Windows API?

c++ - 对于这个 if 语句,哪个表达式更好?

PHP启动ffmpeg无法初始化模块

c++ - 在 Windows 上使用 cmake 编译 gstreamer 应用程序

mysql - 批量插入SQL语句

.net - 创建批处理文件来检查 .net Framework 3.5 sp1 是否安装

batch-file - 如果使用 7zip 的批处理脚本中已存在文件,如何将文件添加到 zip 而不覆盖

FFMPEG 将缩略图附加到视频的第一帧