我有一个bootstrapper应用程序,它安装了几个MSI包.但是,如果安装失败,Windows安装程序似乎不会返回任何错误代码.例如,如果我点击“取消”,则以下命令行测试不会打印“失败”:
msiexec /i myinstaller.msi || echo Failed
如接受的答案所示,实际上返回了错误代码.出于某种原因,我的测试用例只能在从批处理文件执行时按预期工作,而不是直接在命令行输入.
解决方法
实际上,msiexec确实返回错误代码,两个成功代码为0(成功)和3010(成功,需要重新启动).也许cmd.exe在你的例子中做了一些不必要的魔法(比如在msiexec完成之前返回),但是当我通过VBScript的
WScript.Shell Run(bWaitOnReturn = True)执行时,我成功读取了msiexec错误代码.
尝试在test.vbs文件中抛出以下内容,然后使用cscript test.vbs执行它:
Set WshShell = WScript.CreateObject("WScript.Shell") MsgBox(WshShell.Run("msiexec /i myinstaller.msi",true))
如果单击“取消”,它应弹出非零值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。