You can use these standard predefines to automatically add the build time to the title of development versions, add the date to the version number, etc.
Current script name.
Current line number.
Date when the script started compiling according to the current locale.
Time when the script started compiling according to the current locale.
Date & time of the last modification to the script file according to the current locale.
NSIS version used to build the script.
Standard predefines that contain information of the current code scope.
Defined in the global scope.
Section test
!ifdef ${__GLOBAL__}
!error "this shouldn't be here!"
!endif
SectionEnd
Function test
!ifdef ${__GLOBAL__}
!error "this shouldn't be here!"
!endif
FunctionEnd
PageEx instfiles
!ifdef ${__GLOBAL__}
!error "this shouldn't be here!"
!endif
PageExEnd
Defined as the section name, without any prefixes, in section scope.
!ifdef __SECTION__
!error "this shouldn't be here!"
!endif
Section test
!ifndef __SECTION__
!error "missing predefine!"
!endif
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
Section !test
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
Section un.test
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
Defined as the function name, without any prefixes, in function scope.
!ifdef __FUNCTION__
!error "this shouldn't be here!"
!endif
Function test
!ifndef __FUNCTION__
!error "missing predefine!"
!endif
!if ${__FUNCTION__} != test
!error "wrong predefine value!"
!endif
FunctionEnd
Function un.test
!if ${__FUNCTION__} != test
!error "wrong predefine value!"
!endif
FunctionEnd
Defined as the page type in PageEx scope.
!ifdef __PAGEEX__
!error "this shouldn't be here!"
!endif
PageEx instfiles
!ifndef __PAGEEX__
!error "missing predefine!"
!endif
!if ${__PAGEEX__} != instfiles
!error "wrong page type"
!endif
PageExEnd
Defined in section, function or PageEx scopes of the uninstaller.
!ifdef __UNINSTALL__
!error "this shouldn't be here!"
!endif
Function test
!ifdef __UNINSTALL__
!error "this shouldn't be here!"
!endif
FunctionEnd
Function un.test
!ifndef __UNINSTALL__
!error "missing predefine!"
!endif
FunctionEnd