【发布时间】:2018-02-17 17:15:20
【问题描述】:
我有以下代码执行带有 /wait 标志的程序,以便在第一个进程被杀死之前不会执行下一行。
START "" /wait "Process1.exe"
START "" /wait "Process2.exe"
问题是有时进程会出错并且永远不会结束,所以我也想实现 5 分钟的超时,这样如果进程在 5 分钟后仍在运行,超时会杀死它。
理想情况下,如果可能的话,我希望能够同时使用两者,这样如果该过程在 2 分钟内完成,我就不必总是等待整个 5 分钟。
这可能吗?
谢谢!
【问题讨论】:
-
我希望,启动的进程永远不会被 Windows 杀死,而是优雅地终止自身。您可以使用
start在单独的命令进程中运行process1.exe而不使用/wait,并在当前命令进程中使用带有%SystemRoot%\System32\timeout.exe的循环,例如在每 20 秒后使用%SystemRoot%\System32\tasklist.exe检查是否启动的并行运行进程自行终止同时。在对未完成的终止进行 30 次检查后,批处理文件可以使用命令%SystemRoot%\System32\taskkill.exe首先尝试终止并最后终止进程。 -
@Mofi 这对我有用。谢谢!
标签: batch-file