使用“IF”命令创建批处理文件

时间:2012-05-31 17:05:31

标签: windows command-line batch-file command

我创建了一个小批处理文件,帮助人们使用FFMPEG将MP4视频转换为FLV。一种让我知道使用它的每个人都很简单的方法。我认为我放入的线路对于任何情况都是完美的(将MP4文件转换为FLV),但几天前,它对文件不起作用。 (FLV格式的音频样本为高)

我在人们的帮助下找到了转换它的其他代码行,但我不知道如何在我的批处理文件中正确地集成它。

我现在使用的是:

  

echo“输入文件的名称,输出扩展名”:set   / p namefile =

     

echo“输入要为目标文件提供的名称”:set / p destinationfile =

     

ffmpeg -i%namefile%.mp4 -c:v libx264 -crf 19%destinationfile%。flv

我想添加一个“IF”。因为如果这不适用于此行,请使用该行:

  

ffmpeg -i%namefile%.mp4 -c:v libx264 -ar 22050 -crf 28   %destinationfile%FLV的

我该怎么做?

非常感谢你的帮助,如果我对某些事情不清楚,请告诉我,我会尽力说清楚。

谢谢!

2 个答案:

答案 0 :(得分:8)

我不确定FFMPEG是否会在发生故障时返回标准错误代码,但如果失败,则可以使用以下内容:

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if not errorlevel 1 goto Done
ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
:Done

如果此方法不起作用,您可以检查目标文件是否存在以确定进一步的操作:

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if exist %destinationfile%.flv goto Done
ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
:Done

希望其中一项有效。

答案 1 :(得分:5)

与EitanT的第一个解决方案类似,但不使用GOTO。

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if errorlevel 1 ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv


已编辑 - 代码已被截断,现在全部修复

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv||ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv

与EitanT的第二个解决方案类似,但不使用GOTO

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if not exist %destinationfile%.flv ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv