Perform operation on a variable

This action is important as it lets you manipulate the values of variables. You can initialize variables, modify the value of an existing one and perform additional operations on strings.

Property NameData TypeDescription
OperationVarOpsDetermines which action should be performed on the variable. See below for more information. There is a defined set of operations from which you can choose in the list box.
SeparatorStringDefines the (separator) character for some operations. Optional.
ValueStringThe new value to assign to the variable specified in “Variable”. Required. This can be a “hard-coded” text or number, another variable or even a resource string.
VariableVarNameIndicates the name of the variable to be changed. All variable names must be like this: %VARNAME%. Be sure to read the help topic regarding variables.

All operations are Unicode-enabled. Remember that variables are limited in length to 4096 wide characters.

You can perform some operations on the value of the new or existing variable. Below is the description of each operation:

Operation NameDescription
varAssignThe variable will receive the value specified by the Value property. It may also be another variable.
varExtractFilenameRemoves the path from the filename specified in Value. If you specified C:\TEMP\FILES.ZIP, then the variable will contain FILES.ZIP
varExtractFilePathLike the operation above, the variable will receive the path from the filename, such as C:\TEMP
varExtractFileExtThe new variable will receive the extension extracted from the filename specified in Value. If you specified MYAPP.EXE, then the variable will contain .EXE.
varExtractFileDriveReturns a string containing the drive portion of a fully qualified path name for the file passed in “Value”. For file names with drive letters, the result is in the form <drive>. For file names with a UNC path the result is in the form \\<servername>\<sharename>. If the given path contains neither style of path prefix, the result is an empty string.
varRemoveFileExtRemoves the extension of the filename. Example: MYZIP.ZIP will become MYZIP
varDirectoryWOBSTo be used with variables that contain a path. This action removes the directory backslash \ from the end of the path if present. For example C:\My Documents\ will become C:\My Documents. Important: remember that all path variables in Paquet Builder do not have the directory backslash. For instance, %WIN% points to C:\Windows, not C:\Windows.
varDirectoryWBSTo be used with variables that contain a path. This action adds the directory backslash \ to the end of the path if missing. For example %SYS% will be evaluated to %SYS%.
varRemoveBeforeSepRemoves all characters before the separator specified in Separator.
varRemoveAfterSepRemoves all characters after the separator specified in Separator.
varGetShortFilenameThe variable will receive the filename specified in Value converted into the 8.3 DOS filenames format.
varGetLongFilenameThe variable will receive the filename specified in Value converted into the full Windows filename format (including the full path)
varReadValueFromClipboardThe package will retrieve the text from the Windows clipboard and set the resulting variable to it. If the contents of the clipboard is not text compatible, then the variable will be blank.
varStoreValueToClipboardThis action is special as it does not modify the variable itself: it actually reads the value of the Variable (the Value field is ignored) and stores it to the Windows clipboard. Imagine you want to put the text “It works!!” to the clipboard; you will need two “perform operation on a variable” custom actions: one to initialize a variable called “%VAR1%” to “It works!!” (select the varAssign operation) and then the second one to copy the text from %VAR1% to the clipboard (just enter %VAR1% in the Variable field, leave Value blank and select varStoreValueToClipboard as the Operation).
varReadEnvirVarThe resulting variable is set to the value read from the Windows environment variable specified by Value. For instance “TEMP” will return the default temporary folder.
varGetFreeSpaceOnDiskDetermines the free space in bytes available on the disk specified by Value. For example, if you enter C:\, the variable will get the total free space available on the C hard disk. Note that the value can also point to an existing folder.
varGetTotalSpaceOnDiskDetermines the total space in bytes available on the disk specified by Value. For example, if you enter C:\, the variable will get the total free and used space available on the C hard disk. Note that the value can also point to an existing folder.
varAddQuotesAdds the quote character contained in Separator to the left and right of the string contained in Value. The result is then stored in the variable whose name is specified by Variable. Separator must point to a single-byte character such as “ or < or ‘.
varStringReplaceReturns a string with occurrences of one substring (string1) replaced by another substring (string2). Variable indicated by “Variable” property is read and contains the original string with the (string1) substring. Separator should be set to string1 (the text you want to be replaced) and Value set to string2 (the new text). After replacement, Variable is updated: its value is set to the new returned string. See examples below. This function is not case-sensitive and will replace any occurrence of string1 by string2.
varNOTBoolTo be used only with variables that contain a Boolean value (1 or 0). The variable will be set to the contrary of the specified value.
varANDBoolApplies the AND operator (conjunction) to a list of Boolean variables (2 or more required). Specify a list of variables in the “Value” field, each variable must be separated by a semicolon ; Example: %BOOLVAR1%;%BOOLVAR2%;%BOOLVAR3% will perform the following operation: %BOOLVAR1% AND %BOOLVAR2% AND %BOOLVAR3% AND: an expression of the form X and Y is True if and only if both X and Y are True. The result is also a Boolean variable (remember that, in Paquet Builder, Boolean variables are represented by 1 for true and 0 for false.
varORBoolApplies the OR operator (disjunction) to a list of Boolean variables (2 or more required). Specify a list of variables in the “Value” field, each variable must be separated by a semicolon ; Example: %BOOLVAR1%;%BOOLVAR2%;%BOOLVAR3% will perform the following operation: %BOOLVAR1% OR %BOOLVAR2% OR %BOOLVAR3%. OR: an expression of the form X or Y is True if X is True or Y is True or if both are True. The result is also a Boolean variable (remember that, in Paquet Builder, Boolean variables are represented by 1 for true and 0 for false.
varTrimSpacesRemoves all spaces located at the beginning and at the end of the contents in Value. Value can contain variables, resources strings and plain text. Result is stored into the variable indicated by “Variable”.
varLengthGet the character length of the string in “Value” and store it into the variable indicated by “Variable”.
varLeftStringExtract N characters from the left side of the string in “Value” and store it into the variable indicated by “Variable”. N must be an integer and specified in “Separator”.
varRightStringExtract N characters from the right side of the string in “Value” and store it into the variable indicated by “Variable”. N must be an integer and specified in “Separator”.

The default operation is varAssign.

Examples for varStringReplace

You want to replace “the” by “a” in the following sentence: “The mouse is eaten by the cat”.

Create a variable named %MYSTRING% for instance and assign its value to “The mouse is eaten by the cat”.

Then add a “Perform operation on a variable” custom action with the following parameters:

Operation=varStringReplace
Separator=the
Value=a
Variable=%MYSTRING%

You can then display the value of %MYSTRING% using a Show a message box custom action. You will get: a mouse is eaten by a cat

Replacing the \ character by \\ (in C++ code for instance)

Enter the following parameters:

Operation=varStringReplace
Separator=\ 
Value=\\
Variable=%MYRES2%

If %MYRES2% is set to C:\Program Files\Paquet Builder\ for instance, you will get: C:\\Program Files\\Paquet Builder\\\\

All available actions

© G.D.G. Software 2018. All rights reserved.