一個 NSIS 腳本檔案 (.nsi) 就是一個包含了腳本代碼的文字檔案。
命令
命令行為 命令 [參數] 這樣的格式。
File "我的檔案"
註釋
以 ; 或 # 開始的行為註釋。你可以在命令後面新增註釋。你也可以使用 C 規範的註釋來註釋一行或多行。
; 註釋 # 註釋 /* 註釋 註釋 */ File "我的檔案" ; 註釋
如果參數需要由 ; 或 # 開頭,你可以用雙引號把它括起來。
插件
要調用一個插件,使用 插件::命令 [參數] 。更多的訊息請觀看 插件 DLL。
nsExec::Exec "我的檔案"
數字
對於數字參數,使用十進制(數字)或十六進制(以 0x 開頭的,比如: 0x01235AB),或八進制(以 0 開頭且無 x)。
顏色被設定為十六進制 RGB 形式,像 HTML 那樣但是沒有 # 開頭。
IntCmp 1 0x1 lbl_equal SetCtlColors $HWND CCCCCC
字串
要使用一個包含空格的字串,需要用引號括起來:
MessageBox MB_OK "Hi 各位!"
引號僅有的作用就是當他們開始時包含一個參數。他們可以是單引號、雙引號或向後的單引號。
你可以使用 $\ 來跳過引號的解析:
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 fucked!"` ; 這裡把 ' 和 " 都放到了字串裡 MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; 這裡演示了跳過引號的解析
要在字串裡使用Enter、換行、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 \
"Do you want to remove all files in the folder? \
(If you have anything you created that you want \
to keep, click No)" \
IDNO NoRemoveLabel
配置檔案
如果在 makensis.exe 同目錄下存在 nsisconf.nsh,那麼它裡面的代碼預設將會被包含在任何腳本裡(除非你使用了 /NOCONFIG 命令參數)。