在应用msi更新之前等待程序关闭的批处理脚本

时间:2014-04-11 09:02:07

标签: batch-file wait

我使用网络管理工具将更新应用于软件,我遇到的问题是,如果用户已经在使用您要更新更新的程序,则会失败,如您所料。 我一直试图整理一个批处理脚本,它将检测程序是否正在运行,如果是脚本将等到用户关闭程序并应用msi更新。

我几乎一直在搜索谷歌,但只能真正找到以前的脚本,在继续之前先杀死程序,我不希望这种情况发生,因为用户可能会失去工作。

希望有人可以帮忙!

2 个答案:

答案 0 :(得分:1)

@echo off

    start "" notepad.exe

:loop
    (tasklist | find /i "notepad.exe" && ( ping -n 2 localhost & goto loop)) >nul 

    echo Notepad closed

这只是启动notepad.exe(正在运行的程序)并等待它关闭。根据您的需求进行调整

答案 1 :(得分:0)

`tasklist |find "programname"` 

将告诉您程序是否正在运行:

if %errorlevel%==0 echo running

在它周围放了一个小圈:

:loop
tasklist |find "programname" >nul
if %errorlevel%==0 (
  echo prgram running
  timeout 2>nul
  goto loop
)
echo program not running