繁体   English   中英

如何使用NSIS为WinZip安装程序设置答案文件/.ini

[英]How to set up answer file/.ini for WinZip installer using NSIS

我正在创建一个同时安装多个程序和文件包的安装程序,其中一个是WinZip,我希望WinZip安装程序在后台运行,使用/s收集/s将使其在静默模式下运行,但安装程序仍然无法安装。 我认为这是因为必须在WinZip安装过程中进行选择。 所以我的问题是我该如何设置它在后台静默安装WinZip? 我需要一个答案文件吗? 如果是这样,我该如何进行设置? 任何帮助将是巨大的!

*我在NSIS文件中的代码片段:

Section
IfFileExists "C:\Program Files\WinZip\WINZIP32.EXE" Dont_Install 
SetOutPath $TEMP
File "Installerfiles\WinZip165.exe"
DetailPrint "Starting Winzip installation"
ExecWait "/s WinZip165.exe"
Delete $TEMP\WinZip165.exe
SetOutPath $INSTDIR
Goto done
Dont_Install:
MessageBox MB_OK "You seem to have this program \
(WinZip) already installed"  
done:
SectionEnd

*请注意,我已经看到了其他关于静默安装的问题,该问题更多地是WinZip特定的,并且与我如何根据需要建立答案文件有关。

ExecWait "/s WinZip165.exe"显然是错误的,应该是ExecWait '"$TEMP\\WinZip165.exe" /S'但我不认为WinZip使用基于NSIS的安装程序...

他们确实提供了.MSI,您可能想看看。 他们的知识库包含这样一些有用的提示这个这个 您还可以通过谷歌搜索找到其他技巧...

如果您对他们的静默安装模式有任何其他疑问,则应该联系WinZip支持

由于我还没有足够的声誉而无法对Anders响应发表评论,因此这是我个人用来静默安装msi安装程序的命令,该命令是从我多次安装多个程序时使用的安装程序复制而来的。

ExecWait '"msiexec" /i "$TEMP\MSI Installer.msi" /qn'

这是假设您听取了Anders的建议并尝试使用WinZip的msi版本。

另外,安德斯(Anders)提到了代码中的错误之一,其中您没有使用要运行的安装程序的完整路径。 我还想指出,将路径用单引号引起来总是一个好主意。 例如,当您这样做时:

Delete $TEMP\WinZip165.exe

像这样添加单引号:

Delete '$TEMP\WinZip165.exe'

当您做自己的

SetOutPath '$TEMP'

SetOutPath '$INSTDIR'

虽然您可以不用单引号就能解决大多数情况,但是如果遇到带空格的路径,则尝试将路径传递给宏或其他内容时会感到头痛,因为它限制了空格和将字符串分成多段。 每当您要处理可能带有空格或没有空格的Windows路径时,这都是一个好习惯。

顺便说一句,BTW不接受这个答案,我打算将其作为对安德斯所说的后续措施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM