windows - 为什么从 Windows 批处理文件启动的 ffmpeg.exe 不等待用户输入就立即关闭?

标签 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)
这是我运行批处理文件时得到的(在我添加暂停之后)
批处理内容:第一行=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/

相关文章:

windows - 有没有办法从 BAT 文件关闭进程的单个窗口?

c# - 打印 word 文档时边距超出可打印区域

python - 错误 : No module named 'fcntl'

java - 如何在 block 处理中实现文件更新逻辑(Java Batch - JSR352)

node.js - Teamcity 运行的 Grunt 无法正确输出到日志

php - shell_exec 中的 Cmd 脚本无法运行

windows - 如何在 Windows 上的 Vagrant 中使用 rsync 共享文件夹?

windows - 尝试将 "variable"压入堆栈

batch-file - 停止批处理文件发出哔哔声

windows - Windows 批处理脚本打开文件选择器对话框或将文件拖放到其中