基本上我想安静地安装一个msi文件,我已经使用以下行工作了:
msiexec /i C:\Users\%username%\Downloads\mysqlODBC.msi /passive
我想做的一个补充是在行的用户名部分添加双引号,以确保可以正确读取任何可能包含空格的用户名。 ---->“%username%”
问题是我添加它时msi文件无法安装。在编写带目录的批处理脚本时,我总是使用它。知道如何解决这个问题与msiexec合作吗?
链接到MSI文件我试图安静地安装:
网络安装点?:我不太清楚你想要实现的目标。您想在许多机器上自动安装此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。
一些链接:
pushd "C:\Users\%username%\Downloads\"
msiexec.exe /a "mysqlODBC.msi" /quiet /norestart /log "%cd%\msiexec_install.log"
popd
虽然完全限定的路径应该能够置于双引号之间,但另一种选择是使用pushd
和popd
从包含MSI的目录移动到。
在上面的例子中,我用/passive
替换了进度条(aka /quiet
)。我也习惯使用/a
而不是/i
- 要么可以用来安装。我包含了一个日志到文件选项,可用于故障排除。