Windows 带文件参数的静默安装
Windows silent installation with file parameter
我正在尝试通过带有文件参数的 Windows 批处理脚本进行静默安装,但我做不到。
我有一个文件 (params.txt),其中包含在安装过程中应输入的参数(例如路径、选项等)。
观察:也可能是PowerShell。
我在Linux中有类似的东西,这很简单:
.../installer.sh < .../params.txt
但我正在尝试许多不同的方式,包括 NSIS、MSI。但是 none 似乎可以用这些参数解决我的问题。
我得到的最接近的是
C:\installer.exe /S
确实是使用默认参数进行安装,但我想通过我的文件指定它们。
我做了很多研究,甚至在 Whosebug 中也是如此,但没有解决我的问题。
我的 params.txt 文件的内容:
yes
no
C:\Software\MySoftware
yes
no
no
no
安装提示几个问题,文件中包含了我在安装过程中需要给出的答案。
此外,安装程序是使用 NSIS(Nullsoft 脚本安装系统)生成的。
提前致谢。
NSIS 支持 /S
和 /D=c:\installpath
参数 by default,安装作者必须提供对其他任何参数的支持。
安装作者可以检查特定参数and/or答案文件:
!include FileFunc.nsh
!include LogicLib.nsh
Section
; Command-line parameter:
${GetParameters} [=10=]
ClearErrors
${GetOptions} [=10=] "/Something"
${IfNot} ${Errors}
; Do Something
${Else}
; Do something else?
${EndIf}
; Answer .INI file:
Var /Global AnswerFile
StrCpy $AnswerFile $ExePath -4
StrCpy $AnswerFile "$AnswerFile.ini"
ReadIniStr [=10=] $AnswerFile "Options" "OtherPath"
${If} [=10=] != ""
File "/oname=[=10=]\file.ext" "c:\mysource\fileForOtherPath.ext"
${EndIf}
SectionEnd
我正在尝试通过带有文件参数的 Windows 批处理脚本进行静默安装,但我做不到。 我有一个文件 (params.txt),其中包含在安装过程中应输入的参数(例如路径、选项等)。
观察:也可能是PowerShell。
我在Linux中有类似的东西,这很简单:
.../installer.sh < .../params.txt
但我正在尝试许多不同的方式,包括 NSIS、MSI。但是 none 似乎可以用这些参数解决我的问题。 我得到的最接近的是
C:\installer.exe /S
确实是使用默认参数进行安装,但我想通过我的文件指定它们。
我做了很多研究,甚至在 Whosebug 中也是如此,但没有解决我的问题。
我的 params.txt 文件的内容:
yes
no
C:\Software\MySoftware
yes
no
no
no
安装提示几个问题,文件中包含了我在安装过程中需要给出的答案。
此外,安装程序是使用 NSIS(Nullsoft 脚本安装系统)生成的。
提前致谢。
NSIS 支持 /S
和 /D=c:\installpath
参数 by default,安装作者必须提供对其他任何参数的支持。
安装作者可以检查特定参数and/or答案文件:
!include FileFunc.nsh
!include LogicLib.nsh
Section
; Command-line parameter:
${GetParameters} [=10=]
ClearErrors
${GetOptions} [=10=] "/Something"
${IfNot} ${Errors}
; Do Something
${Else}
; Do something else?
${EndIf}
; Answer .INI file:
Var /Global AnswerFile
StrCpy $AnswerFile $ExePath -4
StrCpy $AnswerFile "$AnswerFile.ini"
ReadIniStr [=10=] $AnswerFile "Options" "OtherPath"
${If} [=10=] != ""
File "/oname=[=10=]\file.ext" "c:\mysource\fileForOtherPath.ext"
${EndIf}
SectionEnd