一个 NSIS 脚本文件 (.nsi) 就是一个包含了脚本代码的文本文件。
命令
命令行的格式为: '命令 [参数]'
File "myfile"
注释
以 ; 或 # 作为开始的行为注释。你可以在命令后面添加注释。你也可以使用 C 规范的注释来注释一行或多行。
; 注释 # 注释 # 注释 \ 另一个注释行 (查看本节下面的 `长命令`) /* 注释 注释 */ Name /* 注释 */ mysetup File "我的文件" ; 注释
如果参数需要由 ; 或 # 开头,你可以用双引号把它括起来。
插件
要调用一个插件,使用 '插件::命令 [参数]'。更多的信息请查看 插件 DLLs。
nsExec::Exec "我的文件"
数字
对于数字参数,使用十进制 (数字) 或十六进制 (以 0x 开头的,比如: 0x12345AB), 或八进制 (以 0 开头且无 x)。
颜色被设置为十六进制 RGB 形式,像 HTML 那样但是没有 # 开头。
IntCmp 1 0x1 lbl_equal SetCtlColors $HWND CCCCCC
字符串
要使用一个包含空格的字符串,需要用引号括起来:
MessageBox MB_OK "Hi 您好!"
引号仅有的作用就是当他们开始时包含一个参数。他们可以是单引号、双引号或向后的单引号。
You can escape quotes using $\:
MessageBox MB_OK "I'll be happy" ; 把一个 ' 放在字符串里 MessageBox MB_OK 'And he said to me "Hi there!"' ; 把一个 " 放在字符串里 MessageBox MB_OK `And he said to me "I'll be happy!"` ; 这里把 ' 和 " 都放到了字符串里 MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; 这里演示了跳过引号的解析
要在字符串里使用回车、换行、Tab 等,请使用 $\r, $\n, $\t 等。 更多信息...
变量
变量以 $ 开头。用户变量应该 (不是必须) 事先被声明并且区分大小写。
Var MYVAR StrCpy $MYVAR "变量值"
长命令
要把命令扩充为多行,需要在行尾使用反斜杠 (\) ,下一行会被自动连接到上一行的尾部。例如:
CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \ "$INSTDIR\source\zip2exe\zip2exe.dsw" MessageBox MB_YESNO|MB_ICONQUESTION \ "是否要删除文件夹中的所有文件? \ (如果你想保留任何你自己创建的文件 \ 请点击[否])" \ IDNO NoRemoveLabel
长命令多行扩充同样适用于注释,它可能会让人混淆,因此应该尽量避免。
# 一个注释\ 在这里仍然是注释...
配置文件
如果在 NSIS 的配置目录下存在 "nsisconf.nsh" ,那么它里面的代码默认将会被包含在任何脚本里(除非你使用了 /NOCONFIG 命令参数)。在 Window 平台下配置目录就是 makensis.exe 所在的目录,其它平台下根据安装时的设置有所不同而默认为 $PREFIX/etc/ 。你可以在运行时替换它,更多信息请看 section 3.1.3 。