使用msiexec静默安装MSI,可能是语法问题?

问题描述 投票:1回答:2

基本上我想安静地安装一个msi文件,我已经使用以下行工作了:

msiexec /i C:\Users\%username%\Downloads\mysqlODBC.msi /passive

我想做的一个补充是在行的用户名部分添加双引号,以确保可以正确读取任何可能包含空格的用户名。 ---->“%username%”

问题是我添加它时msi文件无法安装。在编写带目录的批处理脚本时,我总是使用它。知道如何解决这个问题与msiexec合作吗?

链接到MSI文件我试图安静地安装:

https://dev.mysql.com/downloads/file/?id=484649

batch-file msiexec
2个回答
1
投票

网络安装点?:我不太清楚你想要实现的目标。您想在许多机器上自动安装此MSI吗?如果是这样,您应该创建一个可通过UNC路径访问的网络安装点,并运行administrative image以提取所有文件并创建可用于所有计算机的网络安装点:

msiexec.exe /i "\\Server\Share\Setup.msi" /QN /L*V "C:\Temp\msilog.log"

如果你有这个灌输点,那么没有理由为每个用户创建一个文件夹。为什么重复安装文件?当然你不希望每个用户下载安装程序?您需要下载一次恶意软件检查,然后依靠您一劳永逸地下载的内容?

无论如何,如果你坚持:

msiexec.exe /i "\\Server\Share\%username%\Setup.msi" /QN /L*V "C:\Temp\msilog.log"

快速参数说明:

 /i = run install sequence 
 /QN = run completely silently
 /L*V "C:\Temp\msilog.log"= verbose logging at specified path

msiexec.exe:有关msiexec.exe命令行的更多详细信息,请参阅此答案:MSIEXEC what is the difference between qn and quiet。它有两种不同的风格 - 两种不同的开关:旧式和一些较新的“友好型”版本。我只使用旧式开关。 There is a tool you can use to generate the command lines


一些链接:


0
投票

TL; DR :

pushd "C:\Users\%username%\Downloads\"
msiexec.exe /a "mysqlODBC.msi" /quiet /norestart /log "%cd%\msiexec_install.log"
popd

Details :

虽然完全限定的路径应该能够置于双引号之间,但另一种选择是使用pushdpopd从包含MSI的目录移动到。

在上面的例子中,我用/passive替换了进度条(aka /quiet)。我也习惯使用/a而不是/i - 要么可以用来安装。我包含了一个日志到文件选项,可用于故障排除。

© www.soinside.com 2019 - 2024. All rights reserved.