我正在为软件部署创建安装包装器,并且在使用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推出的安装。反过来,让我几乎无法正确报告不成功的安装。
如果有人有任何潜在的解决方案,我们将不胜感激。
答案 0 :(得分:2)
来自@error
的{{1}}值仅告诉您该程序是否已正确启动。然后在后台启动该程序,脚本继续执行。
如果您在安装msi时不需要进行任何处理,例如鼠标或键盘自动化,那么使用Run
将从程序返回退出代码。
或者,如果您需要使用“运行”,则在进行后台处理后,使用RunWait
返回ProcessWaitClose
中程序的退出代码。