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 makensis is:

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

### 3.1.1 Options

- /LICENSE displays license information.
- 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)
- /LAUNCH executes the generated installer.
- /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 information about which options were used to compile makensis.
- /NOCD disables the current directory change to that of the .nsi file
- /INPUTCHARSET allows you to specify a specific codepage for files without a BOM. (ACP|OEM|CP#|UTF8|UTF16<LE|BE>)
- /OUTPUTCHARSET allows you to specify the codepage used by stdout when the output is redirected. (ACP|OEM|CP#|UTF8[SIG]|UTF16<LE|BE>[BOM])
- /PPO or /SAFEPPO will only run the preprocessor and print the result to stdout. The safe version will not execute instructions like !appendfile or !system. !packhdr and !finalize are never executed.
- /WX treats warnings as errors
- 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 in 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.

### 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