在运行时设置变量

Har*_*rry 5 nsis

我正在制作一个NSIS脚本,用于检查是否安装了以前版本的应用程序.如果是,则询问是否应从此先前版本导入配置文件.所以我有一个全局变量配置文件,我试图在运行时设置,具体取决于用户选择"是"还是"否".我遇到的问题是编译它时会报告文件:"$ {XMLConfigDir}*.xml" - >找不到文件.因为尚未设置XMLConfigDir.那么无论如何在运行时设置变量?

Sla*_*ppy 9

声明变量(Var命令)和符号(使用!define命令定义)之间存在差异:

Var /GLOBAL myVar ; This is variable -> use it as $myVar

!define mySymbol; This is symbol -> use it as ${mySymbol} 
Run Code Online (Sandbox Code Playgroud)

试试这个:

!define XMLConfigDir "C:\some_path_to_XML\subdir\"

Section "Main Section" 
        File "${XMLConfigDir}*.xml"
SectionEnd
Run Code Online (Sandbox Code Playgroud)

在安装程序运行期间,也可以使用/ D命令行开关设置符号.


Har*_*rry 2

我的问题的解决方案是使用 CopyFiles 内置函数而不是 SetOutPath 后跟 File。