脚本不等待语句完成并开始执行下一行

时间:2015-07-14 11:10:23

标签: vbscript msiexec

我有一个场景,如果已经安装了应用程序,那么首先卸载旧版本,然后安装新版本。

我使用VBScript在批处理文件中编写了以下代码:

if (exist)

我遇到的问题是,当执行进入if块时,让我们假设已经安装了应用程序,然后它进入from . import bar 块并开始卸载应用程序并异步运行它并开始执行下一行(安装新版本),它会导致另一个安装正在进行的问题"。

我想要的是,一旦卸载应用程序,它应该等到它完成,然后只进入下一行执行(安装更新的版本)。

1 个答案:

答案 0 :(得分:2)

您需要使用WSHShell.Run()的第三个参数,将其设置为true以等待命令的完成。

if (exists) then 
    WshShell.Run "msiexec /qb /x {3D5D4357-217C-49BA-A8E8-00907D631F05}  " ,0,true
end if
WshShell.Run "msiexec /qb /i C:\Build\" & msiFileName,0,true