簡體   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