0

具体来说,我在批处理文件中使用 DGIndex 作为序列的一部分来进行一些视频编码。

尽管接受 CLI 参数,但 DGIndex 会弹出一个窗口来进行处理。完成后它会消失,但命令行会挂起,就好像它仍然打开一样。该进程不再运行。

是否有内置的东西可以确保它不会挂起,或者是否有第三方代理实用程序可以监视进程结束然后自行关闭?

4

3 回答 3

1

我在批处理文件中遇到了与 DGIndex 相同的问题。我知道这是一个老问题,但似乎 DGIndex 从那时起就没有更新过,所以这可能仍然是相关的。

DGIndex 有 2 种不同的命令行“样式”,在手册中称为legacy(一种使用大写字母进行设置),另一种UNIX 样式(小写字母)。

对我来说,UNIX 风格命令行的“-exit”命令不起作用,因此批处理文件没有收到来自 DGIndex 的相应消息,即使它正确完成了它的工作。我改用旧版命令,问题就消失了。

“有趣”的是 Dan 对遗留命令有问题,所以反过来。

问候,迈克。

于 2019-01-29T19:05:15.103 回答
0

如果使用start,批处理文件在启动 dgindex 应用程序后立即返回。

您可以将/WAIT标志传递start给它,告诉它等到进程退出后再移动到批处理文件的下一行。

start /WAIT dgindex -BF=[vob.txt] -FO=0 -IA=2 -OM=2 -TN=0 -OF=[out] -HIDE -EXIT

我知道这是旧的,但你有没有弄明白?

于 2014-01-08T18:41:33.847 回答
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 替换为您选择的延迟,足够长的时间,如果程序仍在运行,则意味着它已崩溃,然后它将在延迟后关闭。

我很确定您无法判断程序是否已挂起(至少无论如何都不是批量)。如果它确实崩溃了,如果您需要再次运行它,这至少可以确保它没有运行。

希望这可以帮助!

于 2012-06-15T10:49:48.723 回答