获取Msiexec返回码

时间:2013-09-19 09:05:00

标签: windows-installer autoit software-distribution

我正在为软件部署创建安装包装器,并且在使用msiexec启动MSI时获取错误代码时遇到一些问题。 请将以下内容作为我的安装字符串的示例:

Run(msiexec /i "' & @WorkingDir & '\install_flash_player_11_active_x.msi" TRANSFORMS="' & @WorkingDir & '\AdobeFlash_ActiveX.mst" /qn /norestart', @WorkingDir, @SW_HIDE)

在AutoIT中,如果安装中发生错误,Run应将@error设置为非零。但是我注意到,即使安装失败,@ error也会设置为0,所以我的来源认为这是成功的。我相信这些返回代码是基于Msiexec本身成功启动而不是Msiexec推出的安装。反过来,让我几乎无法正确报告不成功的安装。

如果有人有任何潜在的解决方案,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

来自@error的{​​{1}}值仅告诉您该程序是否已正确启动。然后在后台启动该程序,脚本继续执行。

如果您在安装msi时不需要进行任何处理,例如鼠标或键盘自动化,那么使用Run将从程序返回退出代码。

或者,如果您需要使用“运行”,则在进行后台处理后,使用RunWait返回ProcessWaitClose中程序的退出代码。