[ About | Licence | Contacts ]
Written by Oleksandr Gavenko (AKA gavenkoa), compiled on 2024-04-01 from rev 052223c22317.

NSIS

Strings

String is a sequence of chars. To represent spaces enclose string in quotes. To escape quote use $. ${MACRO_NAME}, $(VAR_NAME) substituted with macros/variable values. To escape $ use $$.

MessageBox MB_OK "I'll be happy" ; this one puts a ' inside a string
MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string
MessageBox MB_OK `And he said to me "I'll be happy!"` ; this one puts both ' and "s inside a string
MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; this one shows escaping of quotes

Variables

Allowed chaacters for variable names: [a-z][A-Z][0-9] and '_'.

Variable definition

To declare variable:

Var NAME

There are exist registers (predefined variable) through them passed args for macros/functions/plug-ins:

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

To assign value to variable use:

StrCpy $NAME STRING

To access to there value use such syntax:

$NAME

Language strings

To declare multilingual string use:

LangString NAME LANGUAGE_ID STRING

For LANGUAGE_ID use ${LANG_ENGLISH}, ${LANG_RUSSIAN}, etc.

To access to there value use such syntax:

$(NAME)

Standard language strings

You can see list of such var under ContribLanguage Files*.nlf files, which loaded by LoadLanguageFile.

To access to there value use such syntax:

$(^NAME)

Macros definition

To define macro variable:

!define NAME STRING

To access to there value use such syntax:

${NAME}