NSISI基本语法---变量

变量定义:var关键字来定义变量,使用$来引用变量;变量是全局的并且是大小写敏感的。

1、系统常用变量

变量及其含义
变量 $INSTDIR $PROGRAMFILES $COMMONFILES $DESKTOP $EXEDIR ${NSISDIR} $WINDIR
含义 用户定义的解压路径 程序文件目录 公用文件目录 Windows 桌面目录默认为当前用户 安装程序运行时的位置。 包含 NSIS 安装目录的一个标记。……

Windows 目录

默认目录    C:\Program Files C:\Program Files\Common Files C:\windows\desktop   常用于在你想调用一个在 NSIS 目录下的资源时,例如:图标、界面

 C:\windows 或 

C:\winnt

运行时检测,适用OS    
变量 $SYSDIR $TEMP $STARTMENU $SMPROGRAMS $SMSTARTUP $QUICKLAUNCH $DOCUMENTS
含义 Windows 系统目录 系统临时目录 开始菜单目录 开始菜单程序目录 开始菜单程序/启动 目录   文档目录
默认目录

 C:\windows\system 或

 C:\winnt\system32 

C:\windows\temp

取决于

 SetShellVarContext 

设置。

默认为当前用户

同左 同左   C:\Documents and Settings\Foo\My Documents
运行时检测,适用OS       在 IE4 活动桌面及以上的快速启动目录  Windows 95 且 Internet Explorer 4 没有安装时无效。
变量 $SENDTO $RECENT $FAVORITES $MUSIC $PICTURES $VIDEOS $NETHOOD
含义 该目录包含了“发送到”菜单快捷项 该目录包含了指向用户最近文档的快捷方式 该目录包含了指向用户网络收藏夹、文档等的快捷方式。 用户的音乐文件目录 用户的图片目录 用户的视频文件目录 该目录包含了可能存在于我的网络位置、网上邻居文件夹的链接对象
默认目录     同上 同左 同左 同左  
运行时检测,适用OS     该常量在 Windows 95 且 Internet Explorer 4 没有安装时无效 仅在 Windows XP、ME 及以上才有效。 仅在 Windows 2000、XP、ME 及以上才有效。 该常量仅在 Windows XP、ME 及以上才有效。 在 Windows 95 且 Internet Explorer 4 和活动桌面没有安装时无效
变量 $FONTS $TEMPLATES $APPDATA $PRINTHOOD $INTERNET_CACHE $COOKIES $HISTORY
含义 系统字体目录 文档模板目录 应用程序数据目录 该目录包含了可能存在于打印机文件夹的链接对象 Internet Explorer 的临时文件目录。

Interne tExplorer

 的 Cookies 目录。

Internet Explorer 的历史记录目录
默认目录   这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext设置。默认为当前用户 同左      
运行时检测,适用OS     在 Windows 95 且 Internet Explorer 4 和活动桌面没有安装时无效 在 Windows 95 和 Windows 98 上无效。 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效。 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效 量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效
变量 $PROFILE $ADMINTOOLS $RESOURCES $RESOURCES_LOCALIZED $CDBURN_AREA $HWNDPARENT $PLUGINSDIR
含义 用户的个人配置目录 一个保存管理工具的目录 该资源目录保存了主题和其他 Windows 资源 该本地的资源目录保存了主题和其他 Windows 资源 一个在烧录 CD 时储存文件的目录 父窗口的十进制 HWND。 保存给InstallOptions 使用的 INI 文件、启动画面位图或其他插件运行需要的文件
默认目录  C:\Documents and Settings\Foo 这个常量的内容(所有用户或当前用户)取决于SetShellVarContext 设置。默认为当前用户 C:\Windows\Resources  C:\Windows\Resources\1033      
运行时检测,适用OS 在 Windows 2000 及以上有效。 该常量在 Windows 2000、ME 及以上有效 是;该常量在 Windows XP 及以上有效 是;在 Windows XP 及以上有效。 在 Windows XP 及以上有效。    

注:运行时检测.,,没有是默认为否,

适用OS未田表示,默认all;

对于这些变量:明白表达的是什么意思,所指定的目录是哪个就可以了其余的可以忽略。

附:      

  “这个常量的内容(所有用户或当前用户)取决于SetShellVarContext 设置。默认为当前用户”

  看下贾老师的回答 :

NSIS 中部分变量可以通过一个环境设置命令 SetShellVarContext 来设置:

# 设置为当前用户
SetShellVarContext current
# 此时 $DESKTOP 指向 C:\Users\Administrator\Desktop
# 设置为所有用户
SetShellVarContext all
# 此时 $DESKTOP 指向 C:\Users\Public\Desktop
SetShellVarContext 会影响到如 $DESKTOP、$DOCUMENTS、$SMPROGRAMS、$APPDATA 等很多变量的值

(怎么设置先不管,先继续学习)

2、其他常用的系统变量

$ 0,$ 1,$ 2,$ 3,$ 4,$ 5,$ 6,$ 7,$ 8,$ 9,$ R0,$ R1,$ R2,$ R3,$ R4,$ R5,$ R6,$ R7,$ R8,$ R9 寄存器。

这些变量可以像用户变量一样使用,但通常用于共享函数或宏。您不必声明这些变量,因此在共享代码中使用它们时不会出现任何名称冲突。在共享代码中使用这些变量时,建议您使用堆栈来保存和恢复其原始值。这些变量也可用于与插件进行通信,因为它们可以由插件DLL读取和写入

3、自定义变量

[/ GLOBAL] var_name
var variableName

 

参考文章:

NSIS使用手册

静默虚空

猜你喜欢

转载自blog.csdn.net/Ma_Hong_Kai/article/details/83038623