上一页 | 目录 | 下一页

4.1 脚本文件格式

一个 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

上一页 | 目录 | 下一页