MultiTags
MultiTags are text tags that can be used with some User Commands.
These tags are processed and translated before the command is executed.
MultiTags are supported by External Commands, Custom Commands and Batch Scripts.
MultiTags CANNOT be used in MultiScript directly. To use them from MultiScript you must use the GetTagValue() function.
MultiTag | Description | Example Output |
---|---|---|
${focusfilepath} | Full path to the file/folder in focus | C:\Programs Files\MultiCommander\MyFile.exe |
${date:<date-format>} | Current local date | ${date:yyyy-MM-dd} -> 2016-02-28 |
${time:<time-format>} | Current local time | ${time:hh:mm:ss} -> "15:23:01" |
${targetpath} | Current path of the target panel | D:\MyBackup\ |
${sourcepath} | Current path of the source panel | C:\Programs Files\MultiCommander\ |
${targetdevice} | Current device of the target panel | D |
${sourcedevice} | Current device of the source panel | E |
${sourcefocuspath} | Full path to item in focus, in the source view. This MultiTag is the same as ${focusfilepath} |
F:\my folder\filename.txt |
${targetfocuspath} | Full path to item in focus, in the target view. | D:\Temp\Folder 2\report.txt |
${sourcefocusname} | Name of item in focus, in the source view. | filename.txt |
${targetfocusname} | Name of item in focus, in the target view. | report.txt |
${sourcefocusext} | Extension of item in focus, in the source view. | txt |
${targetfocusext} | Extension of item in focus, in the target view. | txt |
${leftpath}, ${leftfocuspath}, ${leftfocusname} | ${rightpath}, ${rightfocuspath}, ${rightfocusname}
Same as the ${sourcefocuspath} tags above, but referring to the left/right panel, independent of which panel is source or target. |
||
$(pid) | The Process ID of MultiCommander | |
$(mctemp) | Root temp folder used by MultiCommander | |
${param:<num>} |
Script parameter. |
${param:0} -> "D:\MyBackup\" |
All the paths below depend on how Multi Commander is installed, ie. for a Single User, Multi User, or a portable installation.
${mcinstallpath} | The path from which Multi Commander is run. | C:\Program Files\MultiCommander |
${mcappdatapath} | Path to Multi Commander's application data folder. | C:\Users\<username>\AppData\Roaming\MultiCommander\ |
${mclogpath} | Path to Multi Commander's log folder | C:\Users\<username>\AppData\Roaming\MultiCommander\Logs\ |
${mcconfigpath} | Path to Multi Commander's main config folder. | C:\Users\<username>\AppData\Roaming\MultiCommander\Config\ |
${mcuserappdata} | Path to Multi Commander's user data storage. Used by plugins and extensions to store user data. | C:\Users\<username>\AppData\Roaming\MultiCommander\UserData\ |
Paths that are expanded from MultiTags are NOT quoted, so you might need to put quotes around the MultiTag. You might also need to put single quotes around the entire command. (See the first MC.Run example below.)
Examples
Custom Commands
MC.Explorer.Goto PATH="${focusfilepath}" MC.Run CMD="C:\bin\Compare.exe" ARG='-s "${sourcepath}" -d "${targetpath}"'
As you see in the MC.Run example. The ARG command has spaces and quote (") characters in it, so the entire ARG must then be encapsulated in single quote ( ' ) characters.
External Commands
"C:\Program Files\Beyond Compare 3\BCompare.exe" -s "${leftfocuspath}" -d "${rightfocuspath}"
MultiScript Commands
MultiTags are only supported in MultiScript on lines that are Custom Commands.
@var $cmd = "C:\\Bin\\Compare.exe"; // INCORRECT @var $path1 = "${sourcepath}"; // Not supported @var $path2 = "${targetpath}"; // Not supported MC.Run CMD="{$cmd}" ARG='-s "{$path1}" -d "{$path2}"' // CORRECT @var $path1 = GetSourcePath(); @var $path2 = GetTargetPath(); MC.Run CMD="{$cmd}" ARG='-s "{$path1}" -d "{$path2}"' // CORRECT MC.Run CMD="{$cmd}" ARG='-s "${sourcepath}" -d "${targetpath}"'
MultiScript calling a CustomCommand with Script variables. Custom Commands that are run from MultiScript are run by the Custom Command engine, so script parts in the Custom Command line must be encapsulated with { } (as the variables are above). They will be evaluated and expanded before that line is sent to the Custom Command engine.