我在谷歌搜索了一个小时,但找不到任何可以解决我的问题的东西。对于我没有遇到的问题,我只发现了“类似”的修复程序。
我开ffmpeg.exe
来自只有 ffmpeg.exe
的批处理文件没有任何参数,即使它在几个小时前也不起作用。
如果我从文件夹中打开命令行并输入 ffmpeg.exe
它有效,因为它没有关闭ffmpeg
但等待我的输入,这正是批处理文件以前的工作方式。
可能是什么问题?
我没有更改批处理文件或 ffmpeg
一个或它们的位置。
如果重要的话,在 Windows 7 x64 上运行。
编辑:文件名为 start ffmpeg.bat
.它的内容只有ffmpeg.exe
以前可以工作。我也试过start ffmpeg.exe
和 ffmpeg
并将文件名更改为 1.bat
和 1.cmd
但都没有奏效。
编辑2:抱歉,我无法更好地解释自己我的英语不是很好,但是我会尝试使用这些图片进行解释:
如果我从桌面运行 CMD 并输入 ffmpeg.exe,这就是我得到的
这是我运行批处理文件时得到的(在我添加暂停之后)
批处理内容:第一行=ffmpeg.exe,第二行=暂停。
正如您所看到的,没有暂停 ffmpeg 将终止并且不会像第一张图像中那样保留在屏幕上。
我尝试重命名文件,并尝试以管理员身份运行它,但都没有成功,有什么建议为什么它突然不像昨天那样运行?
最佳答案
所以首先要做的事情。我想你的意思是你的批处理文件名是 ffmpeg.bat
而不是 start ffmpeg.bat
但您从 cmd.exe 调用它为 start ffmpeg.bat
?
无论如何,永远不要将您的批处理文件名与可执行文件名相同。
那你为什么需要运行start?您可以使用完整路径调用批处理文件中的可执行文件。启动时,它将启动一个不需要的新 cmd 窗口。所以这应该工作得很好。
"C:\program files\wherever ffmpeg is\ffmpeg.exe"
在批处理文件中,它会在退出批处理之前自动等待外部程序关闭。如果您不确定它关闭的原因,它可能会出错。你特别说它“不起作用,即使它在几个小时前起作用”。这不是结论性的。因此,只需在脚本底部添加一个暂停即可捕获异常。
"C:\program files\wherever ffmpeg is\ffmpeg.exe"
pause
编辑
添加屏幕截图后,ffmpeg 仍然运行良好。这就是批处理文件的想法是在完成后运行和退出。 ffmpeg.exe 显然已完成,因为它向您显示命令不完整,将退出。当您从 cmd 运行时不会发生这种情况,因为您的 session 处于保持模式。因此,如果您想开始 session 并等待,那么只需像这样进行批处理:
cmd /k ffmpeg.exe
关于windows - 为什么从 Windows 批处理文件启动的 ffmpeg.exe 不等待用户输入就立即关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481885/