脚本的变量定义与编译器指令

优质
小牛编辑
141浏览
2023-12-01
变量定义

nsi脚本的变量定义用Var关键字,后跟变量名,变量是全局的并且是大小写敏感的。变量引用时需要加上前缀$。

除了用户自定义的变量外,nsi脚本中与定义寄存器变量$0~$9,$R0~$R9用于参数传递,以及系统变量用于特定用途,这些变量主要有:

$INSTDIR,$OUTDIR,$CMDLINE,$LANGUAGE(这些变量都是可写的)。

$PROGRAMFILES,$COMMONFILES,$DESKTOP,$EXEDIR,${NSISDIR},$WINDIR,$SYSDIR,$TEMP,$STARTMENU,
$SMPROGRAMS,$SMSTARTUP,$QUICKLAUNCH,$DOCUMENTS,$SENDTO,$RECENT,$FAVORITES,$MUSIC,$PICTURES,
$VIDEOS,$NETHOOD,$FONTS,$TEMPLATES,$APPDATA,$PRINTHOOD,$INTERNET_CACHE,$COOKIES,$HISTORY,
$PROFILE,$ADMINTOOLS,$RESOURCES,$RESOURCES_LOCALIZED,$CDBURN_AREA,$HWNDPARENT,$ PLUGINSDIR


nsi脚本中可用于调试的系统函数有MessageBoxes,DetailPrint,Dumpstate

编译器指令

nsi脚本的编译器指令主要指仅在编译时刻执行的命令。这些命令主要用来包含文件、条件化编译、定义常量、定义宏等。定义常量和宏是编译器指令的最主要应用。

定义常量的示例:

!define VERSION "1.0.3"
Name "My Program ${VERSION}"
OutFile "My Program Installer - ${VERSION}.exe" 

定义宏的示例:

!macro MyFunc UN
Function ${UN}MyFunc
Call ${UN}DoRegStuff
ReadRegStr $0 HKLM Software\MyProgram key
DetailPrint $0
FunctionEnd