2017-07-18 116 views
2

我想通过命令行参数更改NSIS中的变量。我在文档中看到可以更改全局变量,但在NSIS脚本中没有创建全局变量。通过命令行更改变量NSIS安装程序

例如:如果我有

Var example 
StrCpy $example "C:\Program Files (x86)\Installer" 

是否有可能改变通过命令行参数的例子变量字符串?

回答

3
OutFile "MySetup.exe" 
Name "MySetup" 
RequestExecutionLevel user 

!include FileFunc.nsh 
!include LogicLib.nsh 

Var MyVar 

Function .onInit 
StrCpy $MyVar "Default value" 

${GetParameters} $0 
ClearErrors 
${GetOptions} $0 "/MyVar=" $1 ; Get suffix after "/MyVar=" switch 
${IfNot} ${Errors} 
    StrCpy $MyVar $1 
${EndIf} 
FunctionEnd 

Section 
MessageBox mb_OK MyVar:$MyVar 
SectionEnd 

和执行为"MySetup.exe" /MyVar="Hello world"