为什么ffmpeg.exe从Windows批处理文件立即关闭而不等待用户输入?

时间:2017-06-11 08:36:59

标签: windows batch-file cmd ffmpeg

我搜索了谷歌一个小时,但我找不到任何解决问题的方法。我发现只有“类似”修复我遇到的问题。

我从批处理文件中打开ffmpeg.exe,该文件只有ffmpeg.exe且没有参数,并且即使它在几个小时前发生也不起作用。

如果我从文件夹打开命令行并输入ffmpeg.exe它可以正常工作,因为它没有关闭ffmpeg但等待我的输入,这正是批处理文件以前的工作方式。

可能是什么问题?

我没有更改批处理文件或ffmpeg一个或他们的位置。

如果重要,请在Windows 7 x64上运行。

修改:文件名为start ffmpeg.bat。它的内容只是ffmpeg.exe以前的工作。我还尝试了start ffmpeg.exeffmpeg,并将文件名更改为1.bat1.cmd,但都没有效果。

编辑2:抱歉,我无法解释自己,我的英语不是很好,但我会尝试解释使用这些图片:

This is what i get if i run CMD and write ffmpeg.exe 如果我从桌面运行CMD并输入ffmpeg.exe

,这就是我得到的

This is what I get when i run the batch file (after i added pause) 这是我运行批处理文件时获得的(在我添加暂停后) 批量内容:第1行= ffmpeg.exe,第2行=暂停。

正如您所看到的,没有暂停,ffmpeg将终止并且不会像第一张图像一样保留在屏幕上。

我尝试重命名该文件,我试图以管理员身份运行它,但都没有工作,任何建议为什么它突然没有像昨天一样运行?

1 个答案:

答案 0 :(得分:3)

首先是第一件事。我想你的意思是你的批处理文件名是ffmpeg.bat而不是start ffmpeg.bat,但你是从cmd.exe调用start ffmpeg.bat吗?

无论如何,永远不要将批处理文件名称与可执行文件名称相同。

那为什么你需要跑步?您可以使用完整路径调用批处理文件中的可执行文件。启动时,它将启动一个不需要的新cmd窗口。所以这应该可以正常工作。

"C:\program files\wherever ffmpeg is\ffmpeg.exe"

在批处理文件中,它会在退出批处理之前自动等待外部程序关闭。如果你不确定它为什么关闭,它可能会出错。你明确地说它“不起作用,即使它在几个小时前工作了”。这不是决定性的。所以然后在脚本底部添加一个暂停以捕获该异常。

"C:\program files\wherever ffmpeg is\ffmpeg.exe"
pause

修改 添加截图后,ffmpeg仍然正常运行。这就是批处理文件在完成后运行和退出的想法。 ffmpeg.exe显然已完成,因为它显示命令未完成,并将退出。当您在保持模式下进行会话时,从cmd运行时不会发生这种情况。所以,如果你想开始会话并等待,那么就像这样制作你的批处理:

cmd /k ffmpeg.exe