脚本的变量定义与编译器指令
优质
小牛编辑
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