右键以管理员运行批处理时MSI安装包无法安装的问题
MSI安装批处理管理员运行报错的解决办法
问题背景
我需要制作一个临时安装程序,流程为先安装若干MSI包,再执行后续文件操作。最初使用的命令如下:
start /wait msiexec /i "Myinstaller V2.1.msi" /qb
该命令在普通CMD窗口中可正常完成安装,但将其写入批处理文件后,右键选择「以管理员身份运行」时,出现报错:
This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package
尝试添加/a参数(命令如下)仍无法解决问题:
start /wait msiexec /qn /a "Myinstaller V2.1.msi"
问题排查
进一步测试发现,仅在右键管理员运行批处理文件时会失败;如果先以管理员权限打开控制台,再在控制台中运行该批处理文件,则安装正常。
解决办法
通过在批处理开头添加pushd %~dp0切换到批处理所在目录,成功解决了问题。同时还实现了安装结果检测功能,最终的批处理代码如下:
@echo off pushd %~dp0 start /wait msiexec /i "Myinstaller V2.1.msi" /qb if %ERRORLEVEL% EQU 0 echo SUCCESSFULL if NOT %ERRORLEVEL% EQU 0 echo MyProgram installation FAILED pause
内容的提问来源于stack exchange,提问作者GoldNova
相关产品推荐
相关产品推荐

