我使用网络管理工具将更新应用于软件,我遇到的问题是,如果用户已经在使用您要更新更新的程序,则会失败,如您所料。 我一直试图整理一个批处理脚本,它将检测程序是否正在运行,如果是脚本将等到用户关闭程序并应用msi更新。
我几乎一直在搜索谷歌,但只能真正找到以前的脚本,在继续之前先杀死程序,我不希望这种情况发生,因为用户可能会失去工作。
希望有人可以帮忙!
答案 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