Board logo

标题: [文件操作] [已解决]批处理如何批量封装MP4文件 [打印本页]

作者: zx8wh    时间: 2010-8-20 21:49     标题: [已解决]批处理如何批量封装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 编辑 ]
作者: TX_kakashi    时间: 2010-8-20 23:10

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

作者: zx8wh    时间: 2010-8-21 09:21

测试通过,非常感谢!再请问%%~nI这个是什么意思呀?能详细解说一下吗?
作者: TX_kakashi    时间: 2010-8-21 10:02

在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 扩充
                   到找到的第一个完全合格的名称。如果环境变量名
                   未被定义,或者没有找到文件,此组合键会扩充到
                   空字符串
作者: zx8wh    时间: 2010-8-21 11:54

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2