[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理如何批量封装MP4文件

要将文件夹下面所有MP4格式的文件封装成FLV格式的文件,不懂怎么写批量处理的代码?

单个文件封装的代码如下:
ffmpeg -vcodec copy -acodec copy -i 1.mp4 -f flv 1.flv

我自己学着弄了个批量处理的代码:
@echo off
for %%I in (*.mp4) do ffmpeg -vcodec copy -acodec copy -i %%I -f flv %%I.flv
pause

但是运行后得到的是类似1.mp4.flv这样的文件了,请问怎样修改才能直接得到类似1.flv这样的文件?

[ 本帖最后由 zx8wh 于 2010-8-21 11:55 编辑 ]

  1. for %%I in (*.mp4) do ffmpeg -vcodec copy -acodec copy -i %%I -f flv %%~nI.flv
复制代码

TOP

测试通过,非常感谢!再请问%%~nI这个是什么意思呀?能详细解说一下吗?

TOP

在cmd里输入 for/?.
%%~nI里的~n是修饰用的,表示%%I的文件名,但不包括后缀名。

另外,FOR 变量参照的替换已被增强。您现在可以使用下列
选项语法:

     ~I         - 删除任何引号("),扩充 %I
     %~fI        - 将 %I 扩充到一个完全合格的路径名
     %~dI        - 仅将 %I 扩充到一个驱动器号
     %~pI        - 仅将 %I 扩充到一个路径
     %~nI        - 仅将 %I 扩充到一个文件名
     %~xI        - 仅将 %I 扩充到一个文件扩展名
     %~sI        - 扩充的路径只含有短名
     %~aI        - 将 %I 扩充到文件的文件属性
     %~tI        - 将 %I 扩充到文件的日期/时间
     %~zI        - 将 %I 扩充到文件的大小
     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个完全合格的名称。如果环境变量名
                   未被定义,或者没有找到文件,此组合键会扩充到
                   空字符串

TOP

非常感谢TX_kakashi的详细解答!!!

TOP

返回列表