Custom executes are executables or batch scripts that can be run during a package transaction.
There are six types of custom executes:
Root is the root directory where the custom execute will be located. A relative path from the root to the executable can be specified in the relative executable path. The relative executable path is either just the executable name, if the executable is located immediately under the root, or a relative path from the root to the executable.
Root: [Program Files (64-bit)] Relative Executable Path: foo.exe
Typical path: C:\Program Files\foo.exe
Root: [Program Files (64-bit)] Relative Executable Path: relative\path\foo.exe
Typical path: C:\Program Files\relative\path\foo.exe
Every custom execute can define arguments to be passed into the executable. These can be literal arguments or macros surrounded by the % character.
Arguments can contain macros surrounded by the % character. Macros will be replaced when invoking the custom execute. In the example below, %desktop% will be replaced with the path to the public desktop and %rebootpending% will be replaced with a 1 or 0 indicating whether a reboot is required.
-open %desktop%\file.txt -reboot %rebootpending%
If an argument contains spaces, it needs to be surrounded by quotation marks so that it is treated as one argument. In the example below, the path, `C:\path with spaces\`, will be passed to the executable as one argument instead of three separate arguments.
-open "C:\path with spaces\"
There are three options that can be checked for each custom execute.
Consider package A that depends on package B. If both packages have a post all custom execute with the exact same information (i.e., same executable name and arguments), installing package A will invoke only one of the custom executes.