0

我正在为软件部署创建安装包装程序,并且在使用 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 启动的安装。反过来,我几乎不可能正确报告不成功的安装。

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

4

1 回答 1

2

from的@errorRun仅告诉您程序是否正确启动。然后程序在后台启动,脚本继续执行。

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

或者,如果您需要使用 Run,则在进行后台处理后使用ProcessWaitClose返回程序退出代码的@extended.

于 2013-09-19T12:11:36.130 回答