具体来说,我在批处理文件中使用DGIndex作为序列的一部分来进行一些视频编码。
尽管接受了CLI参数,但DGIndex会弹出一个窗口来进行处理。然后它会在完成后消失,但命令行会挂起,好像它仍然打开一样。该过程不再运行。
我是否有内置功能可以确保它不会挂起,或者是否有第三方代理实用程序会监视进程结束然后自行关闭?
答案 0 :(得分:1)
批处理文件中的DGIndex存在相同的问题。我知道这是一个老问题,但是从那时起似乎没有对DGIndex进行过更新,因此这可能仍然有意义。
DGIndex具有2种不同的命令行“样式”,在本手册中,一种称为 legacy (一种使用大写字母作为设置),另一种称为 UNIX样式(小写字母)。
对我来说,UNIX风格的命令行的“ -exit”命令不起作用,因此即使正确完成了工作,该批处理文件也没有收到来自DGIndex的相应消息。我改用了 legacy 命令,问题就消失了。
“有趣”是Dan在 legacy 命令中遇到了问题,反之亦然。
问候,迈克。
答案 1 :(得分:0)
您可以使用以下内容:
@echo off
echo Running program
start dgindex -BF=[vob.txt] -FO=0 -IA=2 -OM=2 -TN=0 -OF=[out] -HIDE -EXIT
ping 127.0.0.1 -n 10
taskkill /im dgindex.exe /f
exit >nul
此批处理文件基本上运行DGIndex程序,然后在尝试关闭程序之前暂停10秒。只需用您选择的延迟替换10,足够长的时间,如果程序仍在运行,则意味着它已崩溃,然后在延迟后关闭。
我很确定你无法判断程序是否已挂起(至少不是批处理)。如果它确实崩溃了,如果你需要再次运行它,至少可以确保它没有运行。
希望这有帮助!
答案 2 :(得分:0)
如果您使用start
,批处理文件应该在启动dgindex应用程序后立即返回。
您可以将 /WAIT
标记传递给start
,告诉它等待该进程退出,然后再转到批处理文件的下一行。< / p>
start /WAIT dgindex -BF=[vob.txt] -FO=0 -IA=2 -OM=2 -TN=0 -OF=[out] -HIDE -EXIT
我知道这已经老了,但是你有没有想到它?