Previous | Contents | Next

- Chapter 3: Command Line Usage

- MakeNSIS Usage

- Options
- Notes
- Environment variables
- Examples

- Installer Usage

- Common Options
- Uninstaller Specific Options
- Examples

# Chapter 3: Command Line Usage

## 3.1 MakeNSIS Usage

NSIS installers are generated by using the 'MakeNSIS' program to compile a NSIS script (.NSI) into an installer executable. The NSIS development kit installer sets up your computer so that you can compile a .nsi file by simply right-clicking on it in explorer, and selecting 'compile'.

If you want to use MakeNSIS on the command line, the syntax of the makensis command is:

    makensis [option | script.nsi | - [...]]

### 3.1.1 Options

- /LICENSE displays a keen license page.
- The /V switch followed by a number between 0 and 4 will set the verbosity of output accordingly. 0=no output, 1=errors only, 2=warnings and errors, 3=info, warnings, and errors, 4=all output.
- The /P switch followed by a number between 0 and 5 will set the priority of the compiler process accordingly. 0=idle, 1=below normal, 2=normal (default), 3=above normal, 4=high, 5=realtime.
- The /O switch followed by a filename tells the compiler to print its log to that file (instead of the screen)
- /PAUSE makes makensis pause before quitting, which is useful when executing directly from Windows.
- /NOCONFIG disables inclusion of nsisconf.nsh. Without this parameter, installer defaults are set from nsisconf.nsh.
- /CMDHELP prints basic usage information for command (if specified), or all commands (if command is not specified).
- /HDRINFO prints out information on what options were used to compile makensis was compiled with.
- /NOCD disables the current directory change to that of the .nsi file
- Using the /D switch one or more times will add to symbols to the globally defined list (See !define).
- Using the /X switch one or more times will execute the code you specify following it. Example: "/XAutoCloseWindow false"
- Specifying a dash (-) for the script name will tell makensis to use the standard input as a source.

### 3.1.2 Notes

- Parameters are processed by order. `makensis /Ddef script.nsi` is not the same as `makensis script.nsi /Ddef`.
- If multiple scripts are specified, they are treated as one concatenated script.
- On Windows 95, 98 and NT, below normal and above normal process priorities are not available. On those systems, below normal will actually set priority to idle and above normal will set to high.

### 3.1.3 Environment variables

makensis checks a number of environment variables that tell it where to locate the things it needs in order to create installers. These variables include:

- NSISDIR, NSISCONFDIR - Places where nsis data and config files are installed. NSISDIR alters the script variable ${NSISDIR}. See section 4.2.3 for more info.
- APPDATA (on Windows) or HOME (on other platforms) - Location of the per-user configuration file.

### 3.1.4 Examples

Basic usage:

    makensis.exe myscript.nsi

Quiet mode:

    makensis.exe /V1 myscript.nsi

Force compressor:

    makensis.exe /X"SetCompressor /FINAL lzma" myscript.nsi

Change script behavior:

    makensis.exe /DUSE_UPX /DVERSION=1.337 /DNO_IMAGES myscript.nsi

Parameters order:

    makensis /XSection sectioncontents.nsi /XSectionEnd

## 3.2 Installer Usage

Generated installers and uninstallers accept a few options on the command line. These options give the user a bit more control over the installation process.

### 3.2.1 Common Options

- /NCRC disables the CRC check, unless `CRCCheck` `force` was used in the script.
- /S runs the installer or uninstaller silently. See section 4.12 for more information.
- /D sets the default installation directory ($INSTDIR), overriding InstallDir and InstallDirRegKey. It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. Only absolute paths are supported.

### 3.2.2 Uninstaller Specific Options

- _?= sets $INSTDIR. It also stops the uninstaller from copying itself to the temporary directory and running from there. It can be used along with ExecWait to wait for the uninstaller to finish. It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces.

### 3.2.3 Examples

    installer.exe /NCRC

    installer.exe /S

    installer.exe /D=C:\Program Files\NSIS

    installer.exe /NCRC /S /D=C:\Program Files\NSIS

    uninstaller.exe /S _?=C:\Program Files\NSIS

    # uninstall old version
    ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR'

Previous | Contents | Next