批处理脚本如果在for循环中没有响应则终止进程

时间:2014-11-13 02:57:17

标签: for-loop taskkill

我正在尝试安装一些Windows独立更新文件,为此我需要使用wusu.exe。每次不断wusu.exe都会挂起。我创建了一个名为prereqs.bat的批处理文件,在这个文件中我调用了wusu.exe。如果它挂起,我需要代码杀死wusu.exe,然后重试它。

这是我现在的代码:

:PreReqs32
taskkill /im prereqs32.bat /f
taskkill /im wusa.exe /f

当它循环回来时,它会杀死批处理文件和wusa.exe

start cmd /k c:\windows\temp\prereqs.bat

外部进程,以便在出现问题时我可以杀死wusu.exe。

timeout /t 240 /NOBREAK

此超时要等到安装完成,这有时是不够的。

taskkill /im "[wusa.exe]" /fi "STATUS eq NOT RESPONDING"
if "%ERRORLEVEL%"=="1" goto PreReqs32

是否存在某种FOR循环的方式,如果状态为"没有响应"则退出逻辑?

另外,作为奖励,有没有办法放弃超时,只是等待"为了在继续之前完成prereqs.bat,假设wusu.exe没有挂起?

0 个答案:

没有答案