Answers:
谈论一个已加载的问题...
对于初学者,请忽略setup.exe。奇怪的是,它仅称为MSI。或者有时他们提取一堆东西,然后称为MSI,通常可以在运行安装程序时查看您的temp目录,并了解其作用。
我总是作弊,并在启动msiexec /i path/to-install.msi /l*v /qn
日志的情况下试运行install(),然后遍历日志并选择了要设置的属性,并通过命令行进行设置。答案文件从不起作用,或者不值得进行整个过程来制作它们。
然后我找到了InstEdit并用了它。它可以让您编辑MSI的属性并生成一个Transform,然后可以将其作为脚本中的参数传递:msiexec /i path/to/installer.msi /t path/to/transform.mst
我建议您先试用一下,这里有一个免费的版本,可以处理所有事情。
您还可以在这里查看所有开关的msiexec
内容。
Property(S) : PROPERTY_NAME...
Msiexec是您需要的工具。它具有-q参数,可让其安装“安静”的东西:
/ qn:不显示任何用户界面。
/ qb:显示基本的用户界面。
/ qr:显示简化的用户界面,并在安装结束时显示模式对话框。
/ qf:显示完整的用户界面,并在最后显示一个模式对话框。
/ qn +:除最后显示一个模式对话框外,不显示任何用户界面。
/ qb +:显示基本用户界面,并在最后显示一个模式对话框。
/ qb-:显示没有模式对话框的基本用户界面。
您还可以在命令行末尾提供命名选项(或“属性”)。支持哪些属性取决于软件包。例如,此命令:
msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes
...这是安装ActiveState Perl的方式,指示MSI软件包将Perl.exe添加到PATH并将其与.pl文件关联。(来源)
大多数应用程序可以静默安装,因此可以编写脚本。每个Setup.exe都有许多潜在的开关,因此必须致电供应商或搜索其网站。有时,您可以通过使用/?,/ h / help开关启动安装程序来获取信息。MSI文件也可以具有任意数量的开关,但是本文的MSI命令行参数提供了一个列表。
在编写脚本过程时,您可能会遇到一个使用setup.exe安装的应用程序,然后启动另一个文件,例如MSI。一个例子是MS Office XP。发生这种情况时,您的脚本可能会认为您启动的文件已完成,然后启动下一个安装程序,该安装程序将导致所有内容消失。要解决此问题,请尝试绕过安装文件,然后直接使用命令行选项进入实际的安装程序(可能是MSI)。如果不可能,则可能需要创建某种计时器暂停。我曾经使用过一个在互联网上找到的名为wait.exe的小实用程序,但是有百万种方法可以做到这一点。但是,编写脚本的关键是能够识别应用程序是否正确安装,以便下次安装可以开始。