Multi Commander
Multi Commander
Multi Commander
This PDF documentation is auto generated from the documentation located online at http://multicommander.com/docs/
The most updated version of the document is found in the webbased version online
Since this PDF is auto generated the formatting and layout can sometimes be faulty.
If you find some layout or other issues please contact author of MultiCommander (http://multicommander.com/contact) so
it can be corrected.
Supports both Windows Explorer-style and the popular Commander-style keyboard/mouse setup
Supports Drag & Drop
Copy/Move operations support filtering and plugins for special situations
Zip, 7Zip, Tar, Gz can be browsed as if they were folders
FTP, Portable Devices and the Registry are exposed in the file system
MultiRename tool with powerful rename operations
View text/logs files of ANY size with minimal memory usage (even if the files are many gigabytes in size)
Powerful, built-in scripting language (MultiScript) for added customization and to extend functionality
And very, very much more...
System Requirements
Multi Commander works on most operating systems from Windows XP and Windows Server 2003 and newer.
Client Operating System : Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista , Windows XP*, both 32bit
and 64bit
Server Operating System : Windows Server 2012/R2, Windows Server 2008/R2, Windows Server 2003, both 32bit and
64bit
Not all features are available on all operating systems. Note that from summer 2016, XP support is not support in latest
version. But latest version supporting XP is available for download.
Installation
Full Installer (.exe)
You will be given two choices at the beginning of the installation: Single User or All users.
If you choose Single User the installer will, by default, select an installation location that is under your private account. By
doing this the installer will not require any administrator rights for the installation.
If you select All users the installer will, by default, select the shared Program Files folder as the install location. By
installing it here all user accounts on the machine will have access to the program.
This installation option requires administrator rights and the installer will restart itself and ask for admin permission if
needed.
All users that then run Multi Commander will get their own configuration. The configuration is always stored under the
user account, located under the Application Data Path.
Eg. C:\Users\<username>\AppData\Roaming\MultiCommander\Config\
Hint
By typing ":goconfig" in the command line field inside Multi Commander. The active Explorer Panel will then open at
the Multi Commander configuration folder
The portable package is a zip archive that you only need to unpack to a folder. Just make sure that you keep the folder
structure from the zip package.
The portable version is the same as the installed version. The difference is that the portable version is configured to store
all settings and configuration in the folder that Multi Commander is installed in and run from.
The portable version does not save anything to the registry or to the user account folder. Everything is saved in the Multi
Commander folder. So the program must have write permissions to the folder that you start Multi Commander from.
This version is ideal to be installed to - and run from - a USB memory stick.
If you want to use Multi Commander in WinPE 4.0, and assuming your WinPE directory is X:,
copy the folowing files to the following directories before you build WinPE:
Installer Parameters
The installer accepts parameters that make it possible to run the installer silently or from a script.
/S - Silent
Do not show any UI or ask any questions
/D - Destination
The target where Multi Commander should be installed. If not specified the default path under the Program Files
folder is used.
Eg. /D="D:\MyPrograms\MultiCommander"
/PrevInstall - Previous Installation
What to do with existing installation. The options are "Upgrade" or "Uninstall"
Eg. /PrevInstall=Upgrade
/InstallMode - Installation Mode
Install Multi Commander for All users or current user. If "All" is set and install path is under a protected location
(eg. Program Files) make sure the installation is run as administrator. The options are "All" or "User"
Eg. /InstallMode=All
/Kill - Kill running instances of Multi Commander
When doing an upgrade Multi Commander may be running. Use /Kill=Auto to automatically kill any running
instance of MultiCommander
/Kill=Ask will show a dialog asking what to do. /Kill=Abort will abort the upgrade if Multi Commander is running.
Eg. /Kill=Auto
/CLEAR=Uninstall - Clear Uninstall Data
Clear all entries of Multi Commander from the Installed Programs locations in the registry
Eg. /CLEAR=Uninstall
/FORCEDEST="Path" - Force a new path
Force a new path even if a previous path was found in the registry
Eg. /FORCEDEST="D:\NewInstallPath\"
Example
# Upgrade Current
MultiCommander_x64_(6.2.0.2147).exe /S /D="C:\Bin\MultiCommander"
Upgrading
Update Tool
When Multi Commander starts it will check to see if a new version is available. If a new version is found, you will be asked
if you want to upgrade. If you select that option then the update tool is started. You can also do a manual check by either:
selecting Menu > Help > Check for Updates or by launching the update tool via Menu > Help > Launch
MultiUpdate.
The Update tools can also be started manually by running MultiUpdate.exe, located in the installation folder of Multi
Commander.
The Update tool will download the correct update package and then replace all necessary files. The tool works for both the
installed and portable versions.
When doing an upgrade be sure to close any running instances of Multi Commander before running the tool. The Update
tool cannot replace files that are in use.
If you have configured Multi Commander to exit to the system tray as an icon, then Multi Commander is not actually closed
if you just press the 'X' button. To fully close the program, right click on the tray icon and select Close Multi
Commander.
The update tool can (optionally) also download beta versions and has some advanced options that can be set if you have
issues with it.
Check the document page for MultiUpdate for more information about this tool.
If you select Upgrade it will replace all necessary existing files with the new, updated versions.
License
This version (1.0 - 11.x) of Multi Commander can be used for free (without paying for a license)
for personal, commercial and government use.
You are allowed to install this version of Multi Commander on multiple computers.
Multi Commander is not allowed to be used in situations and systems in which the failure of
the Multi Commander software could lead to death, personal injury or severe physical
or environmental damage.
Multi Commander and Mathias Svensson (the author of Multi Commander) are
not responsible for what you do with Multi Commander after you have installed it.
It is up to you to be careful. And always keep backups of your important data.
Mathias Svensson reserves the right to change this license in a future version in any way.
1. Title Bar
2. Menu Bar
3. Toolbar Area
4. Command Line Field
5. Quick Launch Bar
6. Presentation Area
7. Tab Area
8. Button Panel / Log Panel
9. Status Bar
1. Title Bar
The topmost line of the MultiCommander window is the Title Bar; it shows the version number and build number of
MultiCommander.
You can also add custom text to be shown at the beginning of the title. This is done using the -T command line parameter
when invoking MultiCommander.exe
Hint
MultiCommander.exe -T=DEV.
2. Menu Bar
The second line (when visible) shows the Menu Bar. The default entries are: File, Edit, View, Configuration,
Extensions, Tools and Help. You can create and modify additional menus and entries for user-defined commands by
following the procedures outlined in Create User Defined Commands.
Clicking on any menu opens a list of submenus, as described in the Menu Bar detail section here.
Hint
The display of the Menu Bar can be toggled by the shortcut key Ctrl+M.
3. Toolbar Area
The Toolbar Area contains buttons for some of the most-used commands that you find in the menu. It also contains Buttons
for available drives to open in the Explorer Panel. The Command Line Bar and the Quick Launch Bar are also here.
6. Presentation Area
The next part of the display is the presentation area. This displays one or more GUIs that are controlled by extensions
and plug-ins, such as the Explorer Panel and File Search.
7. Tab Area
The tab can be drag and dropped to either side. And you can also right click on a tab for additional commands. like Close
tab, Duplicate Tab, Load Tabs, Save tabs and more. Read more about the Panel Tabs.
Hint
9. Status Bar
The status bar shows various pieces of status information. For example, when copying files you will see the progress of the
copy process here
Menu Bar
The default menu entries are: File, Edit, View, Configuration, Extensions, Tools and Help.
You can add additional menus and menu entries for user-defined commands by following the procedures outlined in Create
User Defined Commands.
Clicking on any menu brings up a submenu, as described below.
Menus
Menu - File
Menu - Edit
Menu - View
Menu - Configuration
Menu - Extensions
Menu - Tools
Menu - Help
Hint
The display of the Menu Bar can be toggled by the shortcut key Ctrl+M.
Menu - File
New
displays a submenu where you can create a new:
Tab
displays a submenu where you can:
View file
allows you to view the selected file using the MultiDataViewer.
Edit file
allows you to edit the selected file(s) using your associated file editor (Notepad is the default).
Copy...
displays the Copy files and folders dialog. (See Copy/Move Operations.)
Copy (Quick)
creates a copy of the file/folder in focus in the same folder with a ".bak" extension added. Only the file/folder in focus is
copied, even if there are other files/folders selected. (Default shortcut key is Shift+F5).
Move...
displays the Move files and folders dialog. (See Copy/Move Operations.)
Delete...
displays the Delete Files dialog. (See Delete Operations.)
Pack files...
displays the Pack files dialog. (See Pack Files.)
Unpack files...
displays the Unpack archives dialog (but only if the file in focus is an archive.)
Find Files...
displays the Find Files dialog.
Exit
closes Multi Commander.
Menu - Edit
Cut
Designates the currently selected files/folders/text to be moved when Paste is selected.
Copy
Designates the currently selected files/folders/text to be copied when Paste is selected.
Paste
Copies or Moves the files/folders/text that were previously designated by Edit->Copy or Edit->Cut.
Delete
Deletes selected text.
Select
displays the Expand Selection dialog.
Unselect
displays the Shrink Selection dialog.
Select All
selects all files and folders in the active panel.
Unselect All
deselects all files and folders in the active panel.
Invert Selection
inverts all selections in the active panel, i.e. switches all selected files and folders to unselected, and all unselected files
and folders to selected..
Menu - View
Split size
displays a dialog that lets you choose one of the following split-sizes for the two explorer panels: 0/100, 25/75, 50/50,
75/25, 100/0.
Log window
is a checkbox option that toggles showing the Log window. (Shortcut key is Ctrl+L.)
Button window
is a checkbox option that toggles showing the Button window. (Shortcut key is Ctrl+B.)
Menu bar
is a checkbox option that toggles showing the Menu bar. (Shortcut key is Ctrl+M.)
Toolbars
shows a list of selectable toolbars. Some of these are not really separate lines, but are subsections of the tool list line.
Uncheck the boxes of those you don't wish to have visible:
selects whether to display the Command Line toolbar. When present, this is a separate line. The tools shown here
are Back, Forward, History, Command Line, and user-selected tools (if any). (For details, see Command Line
Bar.)
Standard
selects whether to show the standard tools in the Tool Bar. These are Refresh, Cut to Clipboard, Copy to
Clipboard, Paste from Clipboard, and Split. (See Standard Command Bar.)
File Commands
selects whether to show the file command tools in the Tool Bar. These are Copy Selected Files, Move Selected
Files, Delete Selected Files, Pack Selected Files, Unpack Selected Files, View File, Edit File, Rename
Current File/Folder, Calculate folder size, Select, Unselect, and Copy the file/folder pathname to the
clipboard. (See File Commands.)
Drives
selects whether to show the drives that are present on the system. (For details on the use of this subset, see Drive
Bar.)
Vertical layout
toggles between vertical split and horizontal split.
Refresh
refreshes the display. (Shortcut key is F2 for Commander style, F5 for Windows Explorer style.)
Stop
stops the current activity. (Shortcut key is Esc.)
Explorer Panel
selects a format or mode to configure for the Explorer Panel. The choices are
1. Date format
View Mode
Menu - Configuration
Manage Aliases
displays the Alias Manager dialog. This lets you create and modify aliases. (See Managing Aliases.)
Button Editor
displays the Button Editor dialog. This lets you configure the Button Panel. (See Using The Button Editor To Customize
The Button Panel.)
Menu Customization
displays the User Menu Editor dialog. (See User Menu Editor).
Keyboard Customization
displays the Customize Keyboards Setup dialog. This lets you modify the keyboard shortcut commands in the menu. (See
Customize Keyboard Shortcuts.)
Core Settings...
opens a new tab that lets you modify the Multi Commander Core Settings. (See Core Settings.)
Menu - Extensions
File Search
displays the Find Files dialog. (See File Search.)
Language Editor
opens a new tab that lets you edit various Multi Commander messages.
MultiRename
displays the MultiRename dialog. (See MultiRename.)
File Checksum
opens a new tab that lets you verify checksums. (See File Verifier (CRC/SFV/MD5).)
Menu - Tools
Create folder...
displays the Create new folder dialog.
To Clipboard
displays a submenu of items that can be copied to the clipboard:
Special
lets you select the oldest duplicates based on version in the filename.
Rename
displays a submenu of renaming styles:
1. Uppercase
2. Lowercase
3. Capitalize
4. Replace text in name
5. Similar name, different extension
Text Tools
displays a submenu of text conversions:
Encoding / Decoding
displays a submenu of text encoding/decoding options:
1. Base64 Encode
2. Base64 Decode
File Security
displays a submenu of file security options:
File Links
displays the Create Links to File/Folder dialog.
Picture Tools
displays a submenu of Picture tools:
Audio Tools
displays a submenu of Audio tools:
Video Tools
displays a submenu of Video tools:
Menu - Help
displays a submenu of Help-related items.
Multi-Script Debugger...
opens an editing and debugging environment for the testing, running and debugging of MultiScripts. (This tool is
functional but still in the Beta stage of development.)
See a screenshot here.
Online Documentation...
displays the Multi Commander Documentation web page in your default web browser.
Report an Issue...
displays the Multi Commander Send Issue Report web page in your default web browser.
Send Feedback...
displays the Send Feedback dialog so that you can submit feedback about Bugs, Problems or Feature requests.
Donate...
Opens a web page in your default web browser where you may support the development of Multi Commander by donating.
Go to...
displays a submenu of places you can Go To:
Backup/Restore ...
displays the Backup/Restore dialog, where you can backup or restore your Multi Commander configuration.
Launch MultiUpdate...
prompts for execution of the MultiUpdate plug-in, which checks for the current version of Multi Commander. (See
MultiUpdate.)
Register...
opens the Multi Commander - Register License dialog.
1. Refresh
Button 1 refreshes the content in the active panel.
2. Cut
Button 2 cuts the selected content to the clipboard.
3. Copy
Button 3 copies the selected content to the clipboard.
4. Paste
Button 4 pastes the clipboard into the active panel.
5. Resize Panel
Button 5 provides a dropdown list from which you can select how you want to split the panel. Clicking on the icon itself
reverts to a 50/50 split.
File Commands
The File Commands toolbar contains tools related to working with files. Most of them only work if the active panel is an
Explorer Panel. The toolbar is displayed whenever View->Toolbars->File Commands is checked. and it can also be
disabled altogether in Explorer Panel settings. (See Explorer Panel Settings).
1. Copy
Displays a dialog for launching a Copy operation. (See Copy/Move Operations)
2. Move
Displays a dialog for launching a Move operation. (See Copy/Move Operations)
3. Delete
Launches a Delete operation. (See Delete Operations)
6. Create Folder
Show the Create folder dialog.
Right click and a popup menu with a list of folders to create is shown. This list can be customized by selecting
"Customize..."/p>
7. View File
Opens the current file to be viewed in the default viewer for that file type. (See File Type Setup)
8. Edit file
Opens the current file to be edited in the default editor for that file type. (See File Type Setup)
9. Find Files
Find Files
Right click and a popup menu with some dynamic selection items opens (built from items shown in the current path).
The entries of a pre-defined list of types are also shown in this list. They can be changed, or more can be added, by
selecting "Customize..."
Right click and a popup menu with some dynamic selection items opens (built from items shown in the current path).
The entries of a pre-defined list of types are also shown in this list. They can be changed, or more can be added, by
selecting "Customize..."
Right click and a popup menu opens with commands for other copy path alternatives.
Right click and a popup menu opens with options to only show/hide hidden files or show/hide system files.
Drive Bar
The Drive toolbar is the rightmost subset of the toolbar, and is displayed whenever View->Toolbars->Drives is checked
and it is enabled in the Explorer Panel Settings.
The Drive toolbar shows a list of drives that the user can choose from. It also show common folder locations like desktop,
pictures, download and more. All the virtual filesystems (like REG, FTP: WPD: ) are also here.
Clicking on one of the icons causes the current tab to switch to that location.
You can also right click on a drive button to show the Windows Shell Context Menu (the "Right-click" menu) for that drive.
To configure the drive toolbar go to Menu -> Configuration -> Explorer Panel Settings and click on the Layout tab
If you enable all of them the toolbar might grow very long and the system will try to auto-rearrange it to its own line if it
does not fit in the Window.
On some systems this causes the toolbar area to rearrange itself incorrectly and may look unsightly.
This can be avoided if, in settings, you allow the drive toolbar to be placed on its own line.
Enabling this option causes the drive toolbar to be placed on its own line and, if there are many drive buttons, they will fit
better.
There will now be a drive buttons bar inside the Explorer Panel.
note that the drive bar inside an Explorer Panel is limited in that it does not support showing special folders or virtual
devices.
Other Configuration
If you have a drive bar active (application global or inside an Explorer Panel) you can remove the Device Dropdown list.
However, if you are a user who likes to use hotkeys for fast access then this is not recommended.
The buttons are enabled if the active extension (panel) supports back/forward/history. If the active extension does not
support these commands, the buttons are disabled.
1. Back
Button 1 tells the extension to go back one step. If this button is held down for 2 seconds, a list of previous locations that
you can select from is displayed. If the active extension is an Explorer Panel it will go back to the previously visited path.
2. Forward
Button 2 tells the extension to go forward one step. This can only be done if you have previously gone backwards. If this
button is held down for 2 seconds, a list of all available forward locations is shown.
3. History
Button 3 shows a list of the previous 40 locations that the currently active extension has visited. From this list a previous
location can be accessed quickly.
The default keyboard shortcut for Back is Alt+Left Arrow, Forward is Alt+Right Arrow and History is Alt+Down Arrow.
In the Explorer Panel the Back and Forward mouse button can also be used if your mouse supports these buttons.
4. Favorites Window
The button shown as a star at the left end of the Command Line. Clicking the star button brings up the Favorites window.
This window contains three sections:
Favorites (F2)
Favorites are paths that can be defined and stored as a list. To select a Favorite path, simply select it and press
Enter.
Web (F3)
Web paths are URLs that can be defined in a list of web addresses. To select a web address, simply select it and
press Enter.
If you type a command for Windows to launch, you can insert a "*" in front of it to run it as Administrator. For example,
"*cmd" will launch the command prompt as Administrator.
The Explorer Panel supports commands such as the command prompt's "cd" command. Thus if an Explorer Panel is
currently active you can type "cd .." , "mkdir myfolder" and the Explorer Panel will create this folder.
alias2 <name> Create a new alias for the current path, eg. "alias2 d"
Used to add support for another language so that you can create new
addlanguage
translations
Save all autoload settings for all tabs. This is the same save as is done
:save
before exit
:showhidden Change the settings to show all system and hidden files and folders
:hidehidden Change the settings to hide all system and hidden files and folders
Go to the path under the Windows user account where Multi Commander
:userdata
saves data
:golog Go to the path where Multi Commander stores its log files
:goconfig Go to the path where Multi Commander reads/writes its settings files
Go to the location where you have your DropBox folder (if you have
:box
DropBox installed)
Go to the location where you have your SkyDrive folder (if you have
:sky
SkyDrive installed)
Go to the
location
where you
have your
:one OneDrive
folder (if
you have
OneDrive
installed)
Show the error message of an internal windows error code. Eg. ":winerr
:winerr <num>
5"
Insert Separator
Inserts a vertical separator line.
The Quick Launch Bar is located after the command line field and the more buttons that are added the shorter the
command line field will be.
If you drop a file or folder on the Quick Launch bar area, a button for it will be automatically added for it.
You can rearrange the buttons in the Quick Launch bar by dragging them around.
If a file is dropped on a program button, that file is sent as a parameter to the program it is dropped on. For
example, if you drop a text file on the notepad button, the text file will be opened in notepad.
If you click on a folder button, that folder will be opened inside Multi Commander.
If you (left-) click on a program button, that program will be started. If you right-click on it, a menu will be opened
that allows you to:
1. Start it normally
2. Start it as Administrator (Vista/Win7 +)
3. Go to the folder containing the program file
4. Remove the button from the Quick Launch bar
5. Customize the way the program is opened, or what icon or tooltip to show for it, etc.
6. Insert a user-defined command button on its left
7. Insert a separator to its left. (This lets you group Quick Launch buttons.)
Enable/Disable
If the Quick Launch Bar items are unchecked under Core Settings, then they are not created or loaded during startup. But
if they are checked in Core Settings, they can still be hidden if Configuration > Core Settings > Application Layout >
Toolbars > CommandLine Bar > Quick Launch bar is unchecked.
You should only use that option to temporarily hide them. If you want to permanently remove them, then uncheck them
under Core Settings. If they are just hidden they are still using memory resources and are loaded and created during
startup. To minimize resource usage, disable them under Core Settings.
Status Bar
At the very bottom of the Multi Commander window is an area where the application can show status information about
background tasks like folder sizing, copy operations and more.
The progress status for copy/delete/move operation is shown to the right in the status bar area. If you double-click on the
progressbar the progress dialog window for that operation will be brought to the foreground and shown.
When Administrator Mode is active you will see an indication of that in the status bar. Administrator Mode will turn itself
off when it has been idle for a couple of minutes, but if you right-click on the status text for it a popup menu will be shown
where you can turn off Administrator Mode without waiting.
This allows for Multi Commander to grow with new features in an easy way and for other developers to create plugins to
extend Multi Commander.
With the Manage Plugins and Extensions selection in the Configuration menu you can enable and disable extensions
and plugins.
Application Extensions
These are extensions that have GUIs and create new tabs with functions in Multi Commander. Examples of Application
Extensions are the Explorer Panel and File Search.
FileSystem Plug-ins
All filesystems and archives that Multi Commander supports are handled by plug-ins. There are plug-ins for Zip, 7-Zip,
RAR, FTP and the Registry.
FileProperties Plug-ins
These plug-ins allow for more data to be shown about files in new columns in the Explorer Panel. For Example the
filesystem plug-in FS-Registry also has a FileProperties Extension allowing you to see the special registry information in
the Explorer Panel.
Favorites
The Favorites window will be shown if you press the Favorites button on the toolbar.
Shortcuts
When the Favorites window is shown it will open with the section that you had opened last.
Favorites is a path to location that can be access faster. It can be a path to a filesystem location, but also path to a web
address is possible.
The Favorites window is automatically close if it loses input focus, So you do not have to click the X button. pressing ESC
or clicking anywhere outside the window will automatically close it.
1. Favorites Sections
It is possible to have multiple sections of Favorites for easier management.
In many sections it is possible to have different lists of Favorites for different purposes
Above the section name you will see F1, F2 and so on. This is the shortcut key to switch to that section.
2. QuickPaths
The first section is special. This section has 10 fixed Favorites that are assigned to the QuickPath shortcut keys.
The QuickPaths may be accessed from almost anywhere by pressing Ctrl+1, Ctrl+2 and so on up to Ctrl+0
Right click on a QuickPath item and select the actin you need: Clear/Modify/Copy/Set Current
To set the current active path to a QuickPath item, select the path and press Ctrl+S
3. Add Section
Press this to add a new section to the list.
4. Favorites list
All Favorites for the active section are listed here. With right click a menu is shown with actions that can performed in the
list
It is also possible to create subsections where favorites can be placed or moved to. Subsections are useful when you have
many Favorites and theyneed to be better organized.
To Add a new Favorite to the list press Ctrl+N. The Favorite's name and path are by default the path of the active panel.
Press Ctrl+F to create a new subsection. Ctrl+E will edit and allow the current selected Favorite item to be modified.
Pressing Ctrl+Q and the list will toggle between showing the Favorites name and the target path.
Ctrl+C and Ctrl+V can be use to copy and paste Favorites. They can be used to copy a Favorite from one section and
paste it into another.
It is also possible to drag and drop Favorites to rearrange their order and placement inside the current section.
5. Help/Hint Texts
This field will show hints and help text
6. Filter
Type here and the list result will be filtered. It is a way to minimize the list if there are a lot of Favorites.
Button Panel
The button panel is shown at the bottom of the main program screen. All of these buttons can be customized in the Button
Editor
A button can be configured to change the location that an Explorer panel is showing or to call an internal or external
command or script.
Since the button panel can run any of the built-in scripts, buttons customization can be a very powerful tool.
By default there are 4 rows of button and 8 button per row, every button can have 4 actions assigned to it giving you up to
128 commands for easy access.
The number of rows can also be change from 1 to 6 and the entire Button Panel can also be disabled.
When holding Ctrl, Shift or Ctrl+Shift (or having the Right or Middle mouse button pressed) the button panel is switched
to its alternative buttons. This allows easy access to the alternative button functions.
Shortcuts
Option - Transparent/Flat
The Transparent option will remove the button background and make the button transparent, giving a "flat" look.
More
Read more about how to customize buttons with the Button Editor and how the button wizard works.
Panel Tabs
Each Multi Commander tab holds an instance of an Explorer Panel or another module, for example Settings or Search.
It is also possible to move tabs from one side to the other by dragging and dropping them.
Right-clicking on the tab will show a popup menu with some tab options.
The list of options will change depending on which module is open in the tab.
1. Close Tab
2. Close All Tabs But This
3. Duplicate Tab
4. Move Tab
5. Save Tabs To File...
6. Load Tabs From File...
7. Lock Tab
8. Lock Tab - Allow subpath change
9. Tab Properties
1. Close Tab
Close the current tab.
Shortcuts
Ctrl-W - Close Current Tab
3. Duplicate Tab
Duplicate the current tab. Open a new Explorer Panel tab showing the same path as the current tab.
This only works if the current tab is an Explorer Panel.
Shortcuts
Ctrl-T - Duplicate Tab (Create new based on current tab)
4. Move Tab
1. Swap the location of left/right panel
Swap the locations of the active panels in the two panel sides. The tab on the left will move to the right, that on the
right will move to the left.
The current panel will be moved to the other side. A panel on the left side will be moved to the right and vice versa.
Hint
Tab layouts can be saved from a User Defined Command using the Custom Command MC.SaveTabs
Hint
Tab layouts can be loaded from a User Defined Command using the Custom Command MC.LoadTabs
7. Lock Tab
If the tab is an Explorer Panel then it will be locked to its current path: it will not be possible to navigate away from this
path.
In Explorer Panel settings it is possible to configure whether a new tab should be open instead or if the new path
navigation should simply be ignored.
A * will be shown before the tab name to indicate that the tab is locked.
9. Tab Properties
In Tab Properties you can can customize the look of an Explorer Panel tab, for example to change colors or force a tab
name.
If "Solid Color" is selected the tab will be drawn with one solid colorotherwise it will be rendered with a color gradient,
starting with the standard UI color (often greyish) that fades into the selected color.
If the Core settings for "Allow tab colors" is disabled, this color setting will have no effect.
If "Use Hover Color when tab is active" is active, then when the tab is active the color will be the same as when
hovering over it.
It will be shown a little lighter than the selected color to make it stand out.
If the color should always be the same as the selected color, uncheck this option.
Explorer Panel
The Explorer Panel is the main panel in Multi Commander.
It is from here that you browse the filesystem and select files or folders for copying, moving, renaming, deleting, viewing
and so forth.
You can have multiple tabs that each contain one Explorer Panel. Each Explorer Panel is a separate file browser.
The Explorer Panel also adds a couple of additonal commands to the context menu on the Panel tab. It adds supports for
actions like Duplicate Tab, Lock Tab, Tab Properties.
By selecting "Duplicate Tab" from the Context Menu on the Tab or with the keyboard shortcut CTRL+T, a new Explorer
Panel will be shown. It will display the same location as the current, active Explorer Panel.
"Lock Tab" allows an Explorer Panel to be locked at the location it currently displays. If you try to go to another location a
new Explorer Panel will be opened for that location.
Tab Properties will show a window where you can customize the tab color and override the tab name,
The image below shows an example of how the Explorer Panel can look with all of its user interface options enabled. Most
of the user interface items can be configured and turned on/off in settings.
1. Device toolbar
Here you can see a list of available devices. This toolbar is very similar to the global device toolbar, except that this toolbar
will only show drives. Special folders and virtual devices that the global toolbar can show is not shown in this Explorer
Panel device toolbar.
You can enable/disable this toolbar in Explorer Panel Settings by checking/unchecking the "Drive buttons" options.
In settings it is possible to configure what extended location types should be shown in the dropdown list.
By pressing Alt+F1 the Device Dropdown in the left panel will be shown. Alt+F2 and the one on the right is shown
If you double click on the Free Space message, it will show used space instead of available space. You can also set which of
the two space figures you want as default by going to Configuration->Explorer Panel settings->Layout->GUI
Components->Show free/used space.
4. Command Buttons
These buttons affect only the active Explorer Panel when they are pressed.
Folder Tree
Splits the panel to show the folder tree in the left portion. (shortcut key Alt + Num* (See Folder tree.)
Go To Root Button
Click on the backslash symbol ("\") to go to the root of the device (shortcut key Ctrl + Back).
Go Up
Click on this icon to go up to the parent level in the file structure (shortcut key Back).
Refresh / Reload
Click on this icon to force a refresh of the current path; hold down the CTRL key to force a flush of the cache as well as a
forced reload of the current path. All selections will be lost.
Disconnect
This icon will disconnect the current device. If the current device is an external USB drive it will be prepared for safe
removal. If the device is an FTP connection then the FTP connection will be dropped.
View Mode
This icon will display a menu of possible View Modes. Currently these consist of Details, List, Thumbnail List and
Thumbnail Details.
5. Path field
The path field shows the current path displayed in the Explorer Panel. Sub folders in the path that is shown are clickable.
Clicking on a subpath causes the Explorer Panel to try to change to that path.
The path field has many options and feature. Read more about the Path field.
6. Folder Tree
The Panel Status bar appears at the bottem of the panel. The various parts are described below:
9. View Filter
Filter the view to only show certain files or folders. Prefixing a filter with "-" will exclude those files. To create a filter to
target folders only, prefix it with "/".
You can edit the View Filter from a keyboard shortcut by pressing CTRL+F (if using the default commander-style setup).
Examples
Click to toggle quick filter. Right click to show a popup menu with pre defined set of View Filters. By selecting
"Customize..." it is possible to edit the list of quick filters and to add new filters to the list.
Path Field
The Path Field shows the current path displayed in the active Explorer Panel . Sub folders in the path that is shown are
clickable. Clicking on a subpath causes the Explorer Panel to try to change to that path.
If you hold down the CTRL key while clicking on a sub folder a list of all the sub-folders under that path will be shown. You
can then select a sub-folder that you want to go to from that list.
Special Feature
A special feature is that if you hold down both SHIFT and CTRL keys while clicking on a sub-folder in the path field,
and then select a sub folder from the folder list, it will try to go to the same sub-path under that folder as the one in
which you are currently located. Eg. if you are currently located in the path
"D:\Projects\MyApp\Version_1.0.0\Source\Includes\" and you click on the "MyApp" sub path while holding down
Shift+Ctrl, then in the folder list that is shown you Select "Version_2.0.0", it will try to go to
"D:\Projects\MyApp\Version_2.0.0\Source\Includes\". If that path does not exist it will go to the closest path that does
exist.
By double clicking on the empty space in the path field, it will become an editable path. If the path is changed the Explorer
Panel will try to change to the new path.
Shortcuts
Ctrl+E Will force the Path Field to be editable and input focus will be moved to it.
All References to Keyboard and Mouse commands below assume that you are using the default Commander-
Style setup, unless otherwise specified.
If you are more comfortable with the way Windows Explorer operates, it is possible to configure Multi Commander to
work like Explorer. You will, however, lose some of the efficiency that you get from the Commander-Style setup.
Read more about how to change Multi Commander to the Windows Explorer-Style Setup
The files/folders that are currently in focus are highlighted by way of a border drawn around them. These are the
files/folders that will be affected by your action if no other files/folders are selected. You can navigate up and down the list
with the up and down arrow keys. The HOME and END keys will change the focus to the first or last item in the list.
If there are more files and folders than will fit on the screen you can use the page up and page down keys to scroll up and
down in steps.
To choose a subfolder to browse either double-click it or, if the folder is already in focus, press the RETURN key. The
Explorer Panel will then try to show you the content of that path. You are also able to browse archives if there are
filesystem plugins installed that expose that archive format as a filesystem. For example .zip and .rar files can be browsed
as if they were unpacked into normal folders.
To go back to the parent folder you can either double-click on the ".." icon or press the BACKSPACE key. Holding down
CTRL while pressing BACKSPACE will send you to the root of the current volume or device.
Holding CTRL and pressing the LEFT or RIGHT arrow key can synchronize the current path or folder in focus to the
panel on the left or right. For example if you are in the left panel and focus is on a folder and you press the
CTRL+RIGHT ARROW key, the path for the folder in focus will be sent to the right panel, and if the right panel is an
Explorer Panel it will now show that path location. If the CTRL+LEFT ARROW key is pressed when the active panel also
is the left one, the Explorer Panel on the left will get the current path location of the right panel and show that location in
the left panel.
If you hold CTRL while pressing the PAGE DOWN or PAGE UP key you will go to the next or previous sibling folder of the
current location. For example If you have some A to Z folders in C:\MyFolders\ and you are currently located in
C:\MyFolders\D, then when you press the CTRL+PAGE DOWN keys the Explorer Panel will now go to the
C:\MyFolders\E folder. If instead CTRL+PAGE UP were pressed, it would have gone to the C:\MyFolders\C folder. This
however requires that sorting in the Explorer Panel is set to the name column. It will go to whichever previous (or next)
sibling folder that the current sorting determines.
If you have an Explorer Panel both in the source and target panel and want to show the same location in the target as the
source panel has, then press the keyboard shortcut key CTRL+. (dot) in the source panel. The target and source panel will
then show the same location.
Hint
Go To Sibling
A quick way to go to a sibling folder is by way of the shortcut keys
Sorting
To sort the files and folders shown, click on the header of the column that you want to sort the contents by. Clicking on it
again will reverse the sort order. You will see an arrow in the header of the column that currently has sorting activated,
indicating if sorting is ascending or descending.
Sorting can also be changed using shortcut keys: CTRL+F1 to sort by first column, CTRL+F2 for second column and so
on, up to CTRL+F5. Selecting the column that is already the sort column will reverse the sort order of that column.
If the configuration option Sort Files Logical for the Explorer Panel is checked, files and folders will be sorted so that
numeric subfields are treated as numbers. E.g. instead of files being shown as
file_0011.txt
file_1.txt
file_10.txt
file_2.txt
file_1.txt
file_2.txt
file_10.txt
file_0011.txt
There are many ways to select files and folders in the Explorer Panel, and Multi Commander also remembers which files
and folders you had selected if you return to a location you had previously opened since Multi Commander was last started.
(If Multi Commander is closed this information is lost).
Using the shortcut key NUM- or "Unselect" from the Edit Menu, a "Shrink Selection" dialog will be shown where you can
insert a filter and all files and folders matching that filter will be deselected.
Invert Selection
By pressing the shortcut key NUM* or selecting "Invert Selection" from the Edit Menu, the selection of all the files and
folders at the current location will be inverted. (Selected files and folders will be deselected, and unselected ones will be
selected.)
Using the shortcut key ALT + NUM+ or "Select same name" from the Edit Menu causes all Files with the same name,
except those having the same file extension as the file currently in focus, to be selected. ALT + NUM- similarly deselects
matching files.
Toggling the selecting files and folders can also be performed with the SPACE bar. If a selection is performed on a folder
an action to calcuate the folder size is also issued.
Quick Search
Quick Search allows you to start typing a name and the focus will change to files or folders starting with that name. Using
the default commander-style setup you need to hold down ALT and CTRL key while typing. This can be configured in the
settings for the Explorer Panel.
When the Quick Search window is active you can press the UP and DOWN ARROW keys to move to the previous or next
file or folder that matches the current quick search.
With Windows Explorer-Style Setup you can just start typing without holding any other key down. However, this setup will
disable the feature that forwards all key-presses to the command line bar.
In the settings for the Explorer Panel you can configure the Quick Search window to be activated with ALT+CTRL+<any
letter> or ALT+<any letter> or simply <any letter>. If configured to be activated by any letter typed, then the Forward
Keys to the command line feature will be disabled.
Forward Keys
With the default Commander-Style Setup, key-presses are forwarded to the command line bar. This make it possible for
you to start typing a command without having to first manually change input focus to the command line bar.
It is possible to change the input focus to the command line bar with the shortcut key ?. (This key may have a different
character depending on keyboard layout or language. It is the key to the left of the '1' key on a normal keyboard. Laptop
keyboards can be different). This key can be reconfigured in the keyboard customization manager.
Context Menu
The context menu is the right click menu that you see in Windows Explorer. In MultiCommander this can be shown in
different ways and additional actions can be shown in the menu. If MultiCommander is set to Window Explorer style the
context menu is shown using the right mouse button. However, for the default commander-style setup the right mouse
button toggles the selections of files and folder with. But if you hold the right button down for 2 seconds it will show the
context menu. Double clicking with the right button will also bring up the context menu.
Copy / Paste
Copying and pasting of files and folders can be performed just as in Windows Explorer, but there is also a function to copy
the path of a file to the clipboard so that you can paste that path or filename into another program.
If the data in the clipboard is not a file path, MultiCommander will attempt to identify what type of data it is. If it is an
image (e.g. a screen capture) then you will be presented with a dialog to save the content from the clipboard as an image
and you can choose which image format you want to save it as (BMP/JPG/PNG).
If the data is identified as text you will be presented with a dialog to save the content from the clipboard as a text file and
you can choose to save the text content as ASCII or Unicode.
Keyboard shortcuts
Default Keyboard Shortcuts (Commander style setup)
Default Keyboard Shortcuts (Windows Explorer style setup)
Favorites/Bookmarks
There are several ways to have Favorites/Bookmarks in Multi Commander
Using User Defined Commands you can easily create a Button Panel button to change the current path. First activate
Wizard mode by pressing the Wizard Mode (On/Off) button. (It is the last button to the right on the bottom row) or from
the configuration menu by selecting Toggle button panel wizard mode
When Wizard Mode is active the button panel will have a red background around the buttons. You can now drag and
drop a file or folder to any button and the Button Panel Wizard dialog will be shown. Click on Go to file / path in Multi
Commander in the dialog and then press OK. You now have a button that when pressed will take you to that file or
location.
You create an alias in the Alias Editor that you find under the Configuration menu. But there are also two quick
commands, Alias and Alias2, that can create an alias directly from the command line field. For example, if you wish to
create a command line shortcut that takes you to your folder "D:\my music\mp3\" you can type alias mp3="d:\my
music\mp3\". (The quotes are only needed if there are spaces in the the path). Now when you type mp3 in the command
line field and press return, Multi Commander will expand the "mp3" alias to the full path and execute that. Since it is a
path it will go to that location.
But there is an even easier way to create this alias, and that is to use the alias2 command. This command only takes the
alias name as a parameter and assumes that the current path in the Explorer Panel will be the target path for that name.
So if the path D:\my music\mp3\ is open and in the command line field you type alias2 mp3, you will create an alias named
mp3 that will take you to the path D:\my music\mp3\.
You can also specify LEFT/RIGHT (instead of PATH) if you want to control in which panel side the path should be opened.
After you have written your command and saved it, you can press the Menu button. From here you can add the newly
created command to the menu bar.
It is also possible to create new column layouts, save them and have Explorer Panels switch to that layout automatically
when browsing to a certain locations. Or you can switch the entire layout when pressing a hotkey or selecting a layout
manually.
Customize Columns
Right click on the column header to show the context menu from which you can customize the columns.
All existing column are shown in the popup menu first. To remove any of the existing (ticked) columns just click on that
item in the context menu and it will be removed.
Add Columns
Add columns by selecting which column to add from the list of columns under "Add columns". This list shows the most
commonly used columns, but there are many more columns available. To access them select the "More..." item at the
bottom of the column list. Then the "Customize Columns.." dialog will be shown. From this dialog all columns are
available.
Use Layout
If you have created multiple column layouts they are listed here. Select one and it will replace the current layout.
By default there are three "standard" layouts available: "Default", "Picture" and "Music".
The "Default" layout is the standard layout that is used of no other is selected. If you want to modify the standard column
layout it is the "Default" layout that should be changed.
The "Picture" and "Music" layout are alternative layouts that will show extended file information for picture and music
files.
Restore Columns
This restores all columns to the saved state of the current column layout.
If "Default" layout is selected and columns are then modified, selecting "Restore Columns" will revert to the saved state
Autosize Columns
If the Explorer Panel setting "Autosize Columns" option is checked this option will not be available.
If the option in the picture above in not enabled (checked) then you can use the "Autosize Columns" option in the column
header menu to manually resize all columns to their optimum width.
Customize Columns
This option will open the Customize Column Layouts window.
There new layout can be created and existing ones can be modified. It is also here that all the columns that do not fit in the
Add Columns list are available.
See Customize Column Layouts for more information.
From the "Customize columns..." option a dialog will open where you can create or modify and remove Column Layouts.
1. Column Layouts
2. Column Layout Name
3. Available Columns
4. Column Filter
5. Add Column
6. Columns List
7. Modify Column Order
8. Copy Column Layout from...
9. Column Properties
10. Autoload on Path
11. Save Changes
1. Column Layouts
All available columns layouts are listed in a dropdown list. After the list there are two button: "Create New" and "Delete".
Use them to to create new layouts or to delete existing ones.
The first item in the column layout list named "[Current Column Layout]" is special.
It represents your current layout and modifying and saving it will only change the look for the current, active Explorer
Panel. No others will be affected and changes are not saved between restarts.
In order to change the Standard column layout (that all Explorer Panel tabs will use), the [Default] column layout needs to
be modified. Changing and saving this layout will cause all Explorer Panel tabs' column layouts to be updated when closing
the window.
3. Available Columns
This is the list of all the available columns which can appear in your layout. From the dropdown list above the list it is
possible to limit which columns to list (by type).
4. Column Filter
There are a lot of columns and it can be hard to find the correct column to add. In the filter field it is possible to filter the
list of available columns.
When you start typing, the available columns list will only show columns whose name includes what has been typed.
5. Add Column
Press the Arrow button add the selected column to the list of columns for the currently-selected layout.
6. Column List
This list shows all the columns that have been assign to the currently selected layout.
The order of the columns in the list is the order they will be shown in the Explorer Panel.
9. Column Properties
All column have some standard properties. These properties can be modified here.
'Display name' is the name that will be shown in the Explorer Panel column header.
'Width' is the default width of the column. However if autoresize columns settings is enabled this width might be ignored if
needed.
'Margin left' and 'Right' allow you to add extra blank space to the column left/right sides (both to the header and the
content).
'Column alignment' specifies how the content of the column will be displayed: right / left / center.
After any properties are changed be sure to press the "Update" button so that the properties are updated
Enter the path for which the column layout should be autoloaded, Check the "Valid for subpaths under this path" if you
want the Column layout to also apply for subpaths under this path. Press the "Add" button to keep your changes.
Paths in this list preceded with a * have the subpath option checked.
Change the path, and/or subpath settings and then click "Change".
Select a path in the list and press the X button to remove it.
Folder Tree
The first of the buttons on the Explorer Panel Embedded Toolbar is the Toggle Folder Tree command, This button will
show/hide the Folder Tree.
Shortcuts
The Folder Tree can be scrolled independently of the Explorer Panel, and clicking on any node of the Folder Tree will
change the Explorer Panel to display that subfolder. The nodes of the Tree are shown with "+" or "-" symbols to show
whether the subtree is expanded or collapsed.
You can also drop files on a folder in the Folder Tree and then a copy operation will begin. The copy operation will use the
folder on to which the file was dropped as the suggested target folder.
Pressing the refresh shortcut command (F2/F5 depending on setup) while a folder in the Folder Tree is in focus will refresh
that Tree node .
NOTE
If you have "Autosize columns" set, the Folder Tree will obscure part of the file listing in the Explorer Panel. To turn
this setting off, click on Configuration > Explorer Panel Settings, scroll down to "Sorting and Columns", and click
on "Autosize columns" to clear the checkbox.
It is also possible to have multiple color profiles each of which has its own setup of different rules and it is possible to
switch to a different profile from a toolbar button.
You can also create user defined commands that will switch to a specific profile; these commands can be assigned to a
hotkey or a menu.
The File Coloring Rules Editor is opened by clicking on the Color Wheel icon on the toolbar.
There are also options to enable/disable File Coloring and a list of available profiles. By default there is only the "[Default]"
profile. But if you create own profiles they will also be listed here.
Clicking on "Refresh file coloring for all files and folders" will remove all coloring information and reapply it for all
files and folder.
The File Coloring Rules Editor can also accessed from the Configuration menu.
Rules Editor
In the File Coloring Rules Editor, It is possible to add/remove or modify existing rules or entire Color Profiles.
The list with its rules also acts as a preview: the rule name will be listed in the colors set for it.
Files and Folders are colored by rules from top to bottom. And the first matching rule will be the one that decides the
color.
If you have multiple rule that can conflict with each other, you can use the Up and Down button above the list to move
rules up and down the list.
Every rule can have 3 criteria that must be true for the color rule to be applied. Only if all parts of the rule are true is the
color rule applied.
The checkboxes in the list of rules shows if a rule is enabled or not. If you uncheck a rule then it will not be applied when
coloring files and folders.
You can export rules to a file that you can later import. When exporting you are ask if you want to export all the rules or
only the active rules. If any rules that are disabled will not be exported when you choose to export 'Only Active rules'.
Example
Example how the default color profile can color files and folders.
Coloring of Background
In roder for File Coloring to be able to change the background color of files/folders the Explorer Panel setting options "Use
file specified background colors" and/or "Use folder specified background colors" must be enabled.
(See the two checked items in the image below)
Example
MC.Explorer.SetColoringRules Name="MyColorProfile"
The dialog lets you choose the format to save the text in
Ascii
Unicode
Ascii - convert to CRLF
Unicode - convert to CRLF
Binary (Raw data)
Some special handling is done for text data. If the text data in your clipboard looks like a path for an existing folder or file,
then instead of opening a dialog, Multi Commander will immediately change the current location to that path you have in
your clipboard data. If the path in the clipboard has a file specified then the focus will be set to that file.
jpg
png
bmp
File Search
Multi Commander provides facilities to search for files and folders, along with a number of options to control the search.
To perform a search, go to the path where you want the search to start and then press hot key for starting search or or
select "File Search" in the Extensions menu or Find Files from the File menu.
Shortcuts
The search dialog will open in a new tab in the opposite panel from that in which you are positioned.
Specify what to look for and how you want to look for it.
You can specify multiple search terms by separating them with spaces.
(If you need to include a space in the search target, put quotes around it. e.g. "Images 23.jpg" .)
You also need to specify how to look for matches. There are three methods provided:
Contains : files and folder names must contain any of the search terms you specify in order to match.
Wildcard : the search terms that are specified contain wildcard characters, e.g. "*.jpg" to find all files ending with ".jpg".
RegEx : the specified search terms are regular expressions.
Using wildcard search you can also specify an exclusion filter by including a - in front of the filter.
For example if you search for "*.cpp -base*"
This will find file named AlphaClass.cpp but it will not match BaseClass.cpp
Next you need to specify where to Look In when starting to search for matches. Normally this path is already set to the
path that the file browser showed when you opened the search dialog. You can press the Reset button to reset the Look
In path to the path that is currently shown in the opposite view.
(You can specify multiple location to search in by separating them with ; for example "D:\Project;F:\Downloads\;C:\Temp\" )
You can also press the "<" button to add all local harddrive, or paths from open tabs.
You can also specify how many Sub Levels down in the file hierarchy to search for files. By default as many levels as exist
are searched.
It is possible to exclude folders from the search in the Exclude Filter. You can enter a space-separated list of folder names
that you want to ignore when searching.
(Foe example if you enter ".svn tmp data" then no folder named ".svn" or "tmp" or "data" will be searched).
If you have previously searched for something you can specify that a new search should search the Results of the first
search.
This way you are doing a search on the previous search result. This is a useful way to filter files from searches that
produce too many results.
More Options
By pressing the "More >>" button you can specify more advanced search options.
You can find files with a specific File Content and you can specify how the search should try to find that content. (See the
screenshot above for available options).
It is also possible to match files on Attribute, Size and Date. (See above).
Search Result
When right-click on items in the result list you will see a list of options. Here you can filter out files from the result list
based on their paths. This can be useful if the result list is very large.
If you double-click on a file in the result list, the opposite panel will open at that files path the file will have focus. You can
also press View and Edit files directly from the search result panel and it is possible to copy files from the search results.
Scripting
File Search can be scripted by creating your own user defined command to start a search. By assigning a hotkey to your
command you can start searches you use often with a single keypress.
The search is controlled by Custom Command script. More information about the search script command is found here
Scripting example:
Virtual FileSystem
Multi Commander uses a virtual filesystem layer.
The virtual filesystem has different plug-ins that extend the elements of the filesystem that Multi Command can show. An
example of a plug-in is FS-Zip that will allow zip archives to be part of the virtual filesystem, so that they can be browsed
and handled just like a folder. Other plug-include the FS-REG plug-in that will add a new filesystem prefix, REG:, that
allows the Windows Registry to be browsed and handled as if it were a filesystem (even though it is not).
Not all filesystem plug-in support all filesystem functions. This depends on what each plug-in can support.
The devices filesystem plug-ins will add new device prefixes to the virtual filesystem, eg. FTP: , REG: , NET:
This will present things that are not normally part of a filesystem as if they were, like the Windows Registry, for example.
Containers are files that contain filesystem objects that have structures that can be represented as if they were a
filesystem.
Typical examples are archives like Zip, RAR or 7-Zip. The plug-ins for them will handle the archive files as they were
folders opened in Multi Commander. Handling archives as if they were folders allow files to be inserted into the archive by
simply copying file into the virtual folder. When viewing a file inside a archive that file will automatically first be copied to
a temporary location before opening.
FS-Local
The built-in filesystem plug-in FS-Local is special. It is handled in a special way within Multi Commander.
FS-Local handles all the normal filesystem objects on the machine, like single-letter devices (A-Z), such as C:,D:,E:, and so
on, and network file paths likes \\Server\share.It is also the only filesystem plug-in that cannot be disabled.
Container/Archive Plug-ins
Included with Multi Commander is a couple of archive filesystem plug-in that will handle different archives.
FS-Zip for Zip archive. Zip archives can be read/modify/write/create.
FS-RAR for rar archives, Only Read mode is supported. RAR archives can't be modified or created.
FS-7Zip handles the 7Zip archives. Read/Write/Create is supported.
FS-TarGZ handled both Tar and GZ archives.Read/Write/Create is supported.
FS-BZip2 handles BZip2 archives. Read/Write/Create is supported.
Device Plug-ins
Included with Multi Commander is a couple of device plug-in
FS-Favorites (FAV:) Allows the favorites in Multi Commander to be browsed like a filesystem.
FS-Portable (WPD:) exposes the Windows Portable Device interface that gives access to portable devices connected to
the machine.
FS-Registry (REG:) make it possible to access the Windows Registry
FS-FTP (FTP:) adds FTP support
Configuration
The way that the plug-in is connected into the virtual filesystem is configured in "Manage Plug-ins and Extensions".
There you can enable/disable plug-ins and configure the file extension and/or byte markers and device prefix that a
filesystem plug-in should be associated with.
Changing how plug-in are connected into the virtual filesystem is for experts only. You are able to configure the plug-ins
in a such way that will Multi Commander my not act the way you want or expect.
Pressing the "Rebuild Config" button will reset all extension/plug-in setups to their defaults.
The "Manage Plug-ins and Extensions" window is found under Menu -> Configuration. Select "FileSystem Plug-ins" in the
'Extension Type' dropdown list.
Set or clear the checkboxes to the left to enable/disable a plug-in. To configure how it connects with the virtual filesystem
press the Options button.
In the image above FS-Zip was select and it is associated with file extensions zip and jar.
To remove an association with a file extension select the extension to remove and press the Remove button.
Adding a new file extension is done by adding the file extension (without the dot) to the input field above the Add button.
Press the Add button to add it.
In the "File Identification" dropdown list you can also identify a file type by specifiying its byte marker. The byte marker is
also used when trying to identify if a file should be opened by a container/archive plug-in.
The byte marker is special sequence of bytes that the file content always starts with. For example, PK are the two bytes
that .zip archives always begin with.
The byte marker can be entered as a hexadecimal value (see FS-RAR in the image above) or as ASCII text (see FS-Zip in
image above).
Enter the byte marker in the input field and press the Add button. Select a byte marker in the list and press the Remove
button to remove it.
Device prefixes for device plug-ins are configured under the "File Extensions". Add the prefix without the ":" (See "reg"
device for FS-Registry in the image above).
FileSystem - Archives
There are virtual filesystem plug-ins to allow archive files like Zip, RAR, or 7Zip to be opened and handled by Multi
Commander.
Multi Commander sees the archive first as a normal file, but when opening it, will browse the content of the archive as if it
were a folder.
Since archives are handled as folders it is possible to browse an archive and select files and then press copy (or drag them)
and only the selected files will be unpacked and copied.
If the virtual filesystem supports writing, it is possible to copy files into the archive just as if the archive were a folder. The
archive will then be updated with the new files.
Delete and Rename are also supported (if the plug-in for that archive format supports it). Not all archive plug-ins support
write/modify operations.
Most operation that can be preformed on normal files can be performed on files inside an archive. The virtual filesystem
will unpack the files to a temporary location if needed.
When viewing or editing a file inside an archive the virtual filesystem layer will automatically extract and update the
archive as needed.
In many places inside Multi Commander it is possible to reference a file that is located inside an archive. The virtual file
system will then automatically open the file inside the archive.
Pack / Unpack
With Pack and Unpack it is possible to quickly pack or unpack files within an archive file.
Unpacking can also be done by browsing the archive, selecting what to copy and then copying the content to a target
location.
In the image above the right panel has the folder "Network" and the files "Network.hpp" and "mine.hpp" selected.
A copy operation of the selected files and folders to the target panel to the left is then issued. In the "Copyfile to..."
confirmation window an archive file name ( NewZipArchive.zip) is added to the target path.
The copy operation will now copy the selected file into the new zip archive named NewZipArchive.zip.
After the copy is completed there is now a new zip archive in the target location: "NewZipArchive.zip"
The virtual Filesystem knows that the .zip extension is a virtual file system object. Therefore, when the target location is a
path that ends in an archive, the virtual filesystem layer will create that archive file if it can. If the file already exists the
existing file will be updated instead.
FS-Zip
This virtual filesystem plug-in adds support for opening and modifying and creating zip archives.
Zip is a very old format and because of that it does not handle well filenames that have characters that do not fit into the 7-
Bit Ascii Table. The Zip standard has been updated to support UTF-8 encoded filenames, and FS-Zip does support that, but
many other programs that create/read zip files to not support UTF-8 encoding. This can make the filenames look differently
if zip archives are moved between computers with different language settings or capabilities.
In the settings for the Zip FileSystem plug-in it is possible to configure which codepage should use when opening zip
archives (those that are not encoded using UTF-8).
The settings page is found under the Configuration menu.
Is is also possible to enable/disable whether a new zip archive should be created using UTF-8 encoding.
FS-Rar
This virtual filesystem plug-in provides read only support for RAR files. It will allow browsing and unpacking rar archives,
but files cannot be added.
To scan the network for computers and devices execute the "Scan Network" command (a progress window will be shown
during the scan). The scan can take a couple of minutes if the network is large. When finished all discovered devices within
a shared filesystem will be listed.
Opening a computer in the list will cause Multi Commander to browse that server path. The server path browsing is then
handled by the normal FS-Local virtual file system plug-in. Just as if the path was entered manually.
Network Commands
Right-clicking on a computer in the list will open a popup window is shown with some additinal commands.
Settings
Execute the "Settings" command to open the settings page
There are three methods (Current Context, Global and Shell) available to use to scan the network. If computer is not found
in the list after a scan, try changing Network browse method and then scan the network again.
If this is checked, discovered computers will be remembered between restarts of Multi Commander.
When connecting a phone, tablet or camera to the computer that device may allow full filesystem access and Windows will
then provide a drive letter for the device and it is accessed as any other device. However, many modern devices do not
support this and require that the device is accessed via a special protocol called MTP. Windows provide access to MTP
devices via the Windows Portable Device interface. This file system extension will expose the WPD interface to Multi
Commander providing access to MTP device.
When full filesystem access to the device is not allowed some filesystem operations might not be accessible. This may differ
from device to device. Note that transferring files to and from an MTP connected device is a lot slower than using a
mapped drive letter.
Some phones and tablets have a settings that will allow the device to be detected as a 'mass storage device' instead.
Windows will then get full filesystem access to the device and will provide a drive letter for it. This way of accessing the
device is a lot faster then using MTP/WPD and is recommended if available.
Under WPD:\ all portable device are listed. If the device is not shown try to refresh the view by pressing the refresh button
or F5/F2 (depending on setup).
Since Multi Commander treats it as a file system most things you can do in a filesystem can be done in the Windows
Registry.
To browse the registry you select "Windows Registry" from the device list dropdown, or you can type in a registry path in
the command line field e.g. "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\" and it will go to the
path you specified. You can also type REG: if you want to browse to the registry location yourself.
When you create a new folder in the registry you are actually creating a new registry key. You can also Delete keys and
values or Rename them. You are able to copy keys and values from one place in the registry to another and you can also
copy keys and values to disk where they will be represented as folders and files. You can also copy them back from the
filesystem to the Registry.
Export Values
Selecting export from the context menu will allow you to export registry values to a standard .reg file. The difference
between this and the export function in Windows' Registry editor is that here it will only export the values that you have
selected. You do not need to export the entire key contents.
An FTP connection will be integrated into Multi Commander's virtual filesystem and the connection can then be access as a
normal filesystem.
The filesystem location FTP: is special; special FTP commands and all FTP bookmarks exists there. When an FTP
connection is established the virtual filesystem will connect that location to a numbered device, between 0: and 9:. The
first FTP connection will be 0:, the next 1:, and so on.
Quick Connect
The Quick Connect command will open the Quick Connect window, allowing a connection to be created without adding an
FTB bookmark.
Enter the information needed to connect to an FTP site. Press the Connect button to complete the connection.
By checking the option "Add to bookmarks" a bookmark for this site will also be created.
The quick connection information (but not the password) is remembered for the next time you need to connect to the site.
Uncheck the option "Remember site" and the Quick Connect window will not remember anything entered into it.
Add/Edit Bookmark
This command will show the Site Manager window. In this window new bookmarks for sites can be added, removed or
changed.
Create a new bookmark by pressing the "New" button. Then enter all the information needed for that bookmark and the
press the "Save" button.
The "Duplicate" button will create a duplicate of the selected bookmark. Change the Name and edit the new bookmark
and then press the "Save" button.
Too delete a bookmark, first selected the bookmark to delete and then press the "Delete" button.
When closing the Site Manager window the FTP: view should refresh and show the new sites. If this does not happen do a
manual refresh by pressing the refresh button or the press F2/F5 (depending on setup).
Connect
Connecting to an FTP site can be done from the Site Manager by selecting the bookmark to connect to and pressing
"Connect".
Executing a bookmark in the list by double-clicking it or by selecting it and pressing the return/enter key will also initiate a
connection to the site.
Logging is very important in FTP. The FTP Logs are used to store error messages, but the FTP server also uses the logs to
show shows information about the site you are connecting to. Most FTP servers will save a lot of important connection
information here.
A log tab will be created for every site or bookmark for which a connection is made.
Disconnect
Press the disconnect button located in the Explorer Panel to disconnect from the FTP server.
Accessing the favorites from the filesystem you can you drag and drop to add new favorites or to copy files to another
target as a favorite.
Drag a file/folder and drop it on an empty space or on another section to place a favorite there.
Drag a file/folder and drop it on a existing favorite and a copy operation of the dragged files to that favorites target
location will be started
Right-clicking a favorites item will allow you to edit or remove favorites. Normal file operations like rename/delete will also
work on favorites.
Copy/Move Operations
To copy or move files and folders you first have to select the desired items; then there are a number of ways to start the
copy/move operation:
1. You can drag and drop the selected files to where you want them copied or moved
2. You can select "Copy..." or "Move..." from the File menu
3. You can press the Copy or Move Button in the button panel, or in the File Commands toolbar
4. You can press the shortcut key for the Copy or Move command
(The default for Commander-style setup is F5/F6, for Explorer-style it is F4/F6)
When a Copy or Move operation has been requested a dialog asking where to copy/move the files to is shown.
The default target for the copy/move operation will be the path of the target panel.
Running multiple copy/move operations concurrently on the same disks can affect performance.
Therefore, if another Copy or Move operation is already in progress a dialog will be shown asking if the new Copy/Move
operation should be added to the queue of operations that are already running.
Read more about the Progress Window that will be shown during the copy/move operation.
If you are copying/moving a single file then the file name will also be shown in the target path field. This allows you to
change the target name of the file if you wish.
If the target path is removed and only a filename is entered, then the file is written to the same path that it is read from but
it is written using its new name.
Options
Pressing the Options button causes the dialog to expand and show the basic file operation options.
Filters
Filters can be used to exclude files and folders from being copied/moved. Prefix the filter with "-" to exclude files and "/" to
target only folders. Separate filters with spaces; if a space is needed in the filter then put quotes (") around the filter.
Examples..
*.jpg *.tiff Only copy jpg and tiff files. Subfolders will be copied but only files matching the filter will be copied.
Do not copy/move any folder named "Img" (all files inside that folder will also be ignored).
-/Img -*.txt
Also exclude all .txt files.
Auto Close
These 2 options specify when the copy/move progress bar should be closed: automatically after the operation is complete,
and if it should close only for short file operations. The default values for these options are configured in Core Settings.
( Menu -> Configuration -> Core Settings -> (tab) File System ).
When you only perform short copy operations such as copying a few images that will only take a few seconds, then you
might want the progress dialog to auto-close when finished. However if the copy operation takes a very long time such as
copying thousands of files, then you might want to keep it open after it is finished.
The FileOperation Plug-in Profiles are modified and configured in the "FileOperation plug-in Profile manager"
dialog that is opened by clicking on the "..." button next to the FileOperation Plug-in profiles drop-down list.
1. Copy Content
This plug-in takes the content of selected folders and places them in the queue as if you selected all the files in
those folders rather than the folders themselves.
This plug-in is mainly used when merging multiple folders into a single target folder. For example, the folders
D:\Images1, D:\Images2 and D:\Images3 are selected and copied using the Copy Content plug-in to D:\All-
Images. Thus all the content from those three folders will be merged together into D:\All-Images.
Without this plug-in you would get 3 folders in D:\All-Images named Images1, Images2 and Images3, each
containing all its respective files. To merge all the folders together you would have had to go into D:\Images1,
select all its files and copy them to D:\AllImages, then repeat that process for each of the other folders you wanted
to merge.
2. AutoSort (A-Z)
This plug-in will effectively modify the target location of the selected files and folders and distribute them into an A-
Z folder structure in the selected target location.
For example if the file "D:\Images1\Australia_001.jpg" is specified to be copied to D:\Images, it will be placed in
D:\Images\A instead.
3. Unpacker
This plug-in will unpack all .zip/.rar files (depending on configuration) into the target folder instead of
copying/moving them.
For example if it is told to copy the file "D:\Images_Collections\TripAustralia.zip" into D:\Trips, then it will take
all the files inside the .zip archive and copy them into D:\Trips instead.
Advanced Options
Pressing the Advanced button will expand the dialog and show the Advanced Options. These are options that are rarely
changed; some options here should only be changed if you really know what you are doing.
(Symbolic links only exist on NTFS file systems, but not on Windows XP/2003 and older.)
Follow Links
This specifies that Multi Commander should copy the file/folder of the link target to the target folder.
Copy/Move Link
This will create a new link on the target and this link will point to the same location that the source link is
pointing to. This requires you to have permissions in the filesystem to create Symbolic Links or Junctions.
Ignore Links
This will ignore all types of links, and will not follow or copy/move them.
Read/Write Strategy
This is a list of different read/write strategies that can be used when reading/writing data. The system tries to
determine what read/write strategy is best for the current operation and it will automatically select it. It is possible
to select another one and also configure the strategy using the "..." button. This is however not recommended
unless you are an expert.
Speed Limit
This allows you to limit the maximum speed of the copy/move operation.
This feature is not yet enabled, and cannot be used at present
Save As Default
Pressing this button will save the settings you have currently chosen as the default values for all future copy/move
operations. The next time you start a copy operation and this dialog is shown the configuration will be preset to what you
have now.
Set/Change Presets
Presets are a special feature whereby you can save some or all configurations including filters and target locations. These
configurations can then be loaded using the functions keys (F1 to F10). A preset can also be configured to be auto-loaded
when you start a copy/move operation from a specific folder.
Read more about FileOperation Presets
To create a preset begin your normal process of copying/moving the file. Set the filter and FileOperations plug-in and
other options you want to use. Then expand the dialog to its maximum size and click on Set/Change Preset.
Select a free Presets slot and enter the name you want to use for the preset. Then check the options you want the preset
to store.
You can also check the option to "Set Target Location to..." if you want the preset to store the target location and always
set that location as target no matter what path you had as target when you started the copy/move process.
If you want to Autoload the preset, you need to add the source path it should be connected to. (Wildcard for the path is
supported.)
In this example you will see that we have a preset that we named "Pictures", and we wish it to store all the Copy/Move
Options, Filters and FileOperation plugins that we defined previously (before going into this dialog). We also want the
target path to always be set to "E:\Pictures\" and the preset to be auto-loaded when we start a copy/move operation from
"D:\Pictures\".
When you enter the Copy/Move dialog to start a copy/move operation and a preset is auto-loaded, you can unload the
preset with F12 or press the "Unload Preset" button that appears next to the OK button. (not shown in screenshots)
If a filter should match a folder then prefix the filter with a slash "/" and if you want to exclude any files prefix it with a
hyphen "-". If a folder should be excluded type the hyphen first ( eg "-/MyFolder" )
Example #1
A number of folders were selected and we chose to copy them to E:\Pictures\. Using filters we also specify that we only
want to copy the *.jpg files. We also select the AutoSort plugin so the files will be stored in A-Z named folders.
Example #2
Some folders have been selected and we chose to copy them to E:\Pictures\. In filters we also specify that we want to
include all files (*.*) but we want to exclude the folder named Japan and all *.tiff files.
The progress window shows you the speed and progress of the current file/folder and the total progress of the entire
operation.
You can pause the operation by pressing the "Pause" button. The button's name will then change to "Continue" and you
can press it again to continue processing.
To stop the copy/move operation you can press the "Abort" Button or you can press the X button in the caption bar.
Pressing the "Skip" button will allow you to skip the current file. It will then continue on to the next file in the queue.
Show Queue
Pressing the "Show Queue >>" button will allow you to see the copy/move queue.
Delete Operations
You can delete files or folders using any of the following methods:
All these methods display a dialog that lets you modify options for the delete operation, as shown below:
Only Files
If checked, only files are deleted. Files in folders will be deleted but the empty folders will remain on the filesystem.
Pack Files
To pack files/folders into an archive you first need to select the files and folders you want to pack.
To start a pack operation, either press the shortcut (default Alt+F5 if running with Commander-style setup) or select
"Pack files..." from the File menu.
From the Pack Files dialog you can select which packer profile you want to use. Different profiles can use a different
packer with a different default configuration.
To reconfigure a profile, press the "Configure" button. You can then configure the selected Packer Profile, eg. change
compression levels and whatever other options that packer supports.
Source (Button)
This button changes the source path for the packed file to the path of the source Explorer Panel.
Target (Button)
This button changes the target path for the packed file to the path of the target Explorer Panel.
Filter
You can specify Filters to include and/or exclude files/folders when packing. These filters work the same as filters in the
Copy/Move options here.
Packer Profiles
The Pack Files dialog lets you manage Packer Profiles by pressing the Manage Profiles button. This displays a Packer
Profile Manager dialog that lets you create your own Packer Profiles or change the default values of any existing ones.
Select the Packer Profile you want to change or press the "Add Profile" button to create a new one. Then select which
packer you want to use (eg. Zip or 7-Zip) and press the "Configure..." button to configure the default values for this profile.
The Default values are those values the packer should use if the user does not change any in the Pack Files dialog.
External Packers
This is not activated yet.
Unpack Files
Select the file or files that you want to unpack then select Unpack file from the File menu or press the keyboard shortcut
(default: Alt+F6).
Shortcuts
A dialog will be shown where you can choose where the file should be unpacked. By default the path in the target panel is
selected.
You can easily toggle between the source and target path by pressing the source/target buttons.
If the files are unpacked into the same folder they are located in (source folder) then they will be be unpacked into a folder
with the same name as the packed file, but with no file extensions.
For example if you unpack c:\temp\myfile.zip into c:\temp then it will be unpacked into c:\temp\myfile\
Filter
It is also possible to specify a filter. The filter will exclude and/or include files/folders from the unpacking. The filter works
the same as the filter for file copy.
MultiRename
Overview
With MultiRename you can rename multiple files or folders by creating a rename rule.
You can easily select part of the existing file name, add text, replace characters or words, insert file property data in the
file name, (eg. Date, Exif information for photos and much more )
Undo information is also saved so that if you rename files incorrectly or rename too many files by mistake, you can easily
load a previously-renamed session and undo it.
If you are perform the same MultiRename many times you can save the rules and then load them when you need them
again.
Rename Rules
By inserting different tags you will insert different text parts into the name.
Pressing the [<] button next to the filename and file extension field will show a list of the most common tags you can use. If
you press "Plugin and more..." you will see a list of all the extended tags you can add.
You also can specify parameters in the tag. The parameters determine which part of the tag text will be inserted.
All file properties from plugi-ns that return a date/time will return the date/time formatted using system settings.
This can be a problem since if time is returned as 12:22:22 the rename will fail since ":" is an invalid character for
filenames.
You then need to replace the : with some other character (or blank) in the Search and Replace section in the
MultiRename windows.
You can also specify a custom date and time formatting for the tag.
How the date and time format works Date Formatting - Time Formatting
Examples
You can both create and verify .sfv .md5 checksm files and also compare verification values directly.
You can verify multiple .sfv / md5 files at the same time. If you send a folder to the File Verifier it will scan that folder for
all .sfv /.md5 files found.
Under the Tools menu you will find a couple of quick commands for File Checksum. Read more about them here
In the Create New Checksum dialog, select which type of checksum file you want to create, SFV or MD5.
A new .sfv or .md5 item will be created and named "Untitled sfv file.sfv" for .sfv by default. To change the name you need
to click to edit it. If the name is not changed, a new name will automatically be generated from the name of the first file
that is added to this checksum file.
Add Files
Add files to the checksum file by using the "copy" command or drag and drop the files you want to add.
(The default keyboard shortcut for copy is F5 if using CommanderStyle setup, or F2 for WindowsExplorer style.)
When all the files have been added, press the start button in the File Verifier toolbar.
The checksum for all the files will now be calculated and saved into the checksum file you specified.
You can also start the File Verifier Extension you select and then copy or drag and drop the .sfv or .md5 files to the panel
with the File Verifier open. If you copy or drag and drop folders the verifier will scan those folders for .sfv or .md5 and
automatically add them to the file verifyer layout.
Press the Start button in the file verifier toolbar to start the verify process
If Errors found
You will be presented with a dialog asking what to do with the offending files. You have the option to rename or delete
them, or to do nothing.
Context Menu
From the context menu (right mouse button click) you can choose to rescan files that previously failed or to remove from
the list all files that were successfully scanned.
Verify Values
Sometimes you want to verify a file you for which know the checksum values but have no .sfv/.md5 file for. In this case you
can create a new file verification with the New button and select "compare value".
You then copy or drag the file you want to verify, click in the "expected value" column and fill in the expected value.
Finally, press start to begin verifying.
The Default File Viewer in Multi Commander is MultiDataViewer. It is a file viewer that has some unique features.
MultiDataViewer Features
MultiDataViewer can:
View files of any size, even if the file is several gigabytes, using very little memory
View files as ASCII / Unicode / UTF8 / Binary and Hex
Be extensively customized. Font / Color / Background / Gridlines / Strip and more can be changed using
different profiles that are loaded for different files based on format or file type
Support syntax coloring
Support links. Links in the text are clickable, so you can click on the link and a browser will be opened for that
location
Highlight all the words in different colors
AutoSelect an entire word when double clicking on it (It is possible to customize what special characters are
allowed in a word)
Copy selections to the clipboard or save selections to a file
Support Drag & Drop. Drop a file on MultiDataViewer to view it
Provide MouseWheel Zoom: hold CTRL down when using the mouse wheel and it will increase / decrease font
size
Queue files to view and Go to next/previous file with CTRL+ PAGEUP / PAGEDOWN
Auto-reload files if changed (very useful when viewing a live log file)
The Multi Commander Picture Viewer supports most common picture formats, such as jpg, png, gif, bmp, tiff, psd and
many raw formats.
If the picture has an exif tag with rotation information it will auto-rotate the picture for you when it is viewed. You can also
manually rotate and flip the picture if you wish. You can also re-save the picture after it has been rotated.
JPG pictures will be saved using lossless operations, so that the quality of the picture is not degraded.
It is also possible to set a picture as your desktop background, and if multiple files are viewed you can select slideshow
mode and it will automatically load the next image every couple of seconds.
Fullscreen mode is supported by pressing F11, and you can also zoom the picture using the + / - keys or the mouse wheel.
Shortcut Keys
ESC - Close Picture Viewer
Ctrl-R - Rotate 90 degree
Ctrl-F - Flip image Up/Down
Ctrl-M - Mirror image Left/Right
Ctrl-S - Save changes to image
Ctrl-C - Copy image to the clipboard
Ctrl-0 - Auto zoom - Stretch to fit
Ctrl-1 - Zoom to 50%
Ctrl-2 - Zoom to 100%
Ctrl-3 - Zoom to 150%
Ctrl-4 - Zoom to 200%
+ - Zoom In
- - Zoom Out
Ctrl+Shift+R - Resize
Ctrl+Shift+S - Save As...
Ctrl+Shift+G - Make Greyscale
Ctrl+Shift+I - Invert colors
Arrow Keys - Move zoomed in image inside the window
I - Show Picture Information
E - Show Exif Information
T - Show Timestamp
P - Show Photo Information
Language Editor
The built-in language editor allows the creation of new language packs or the correction of language texts in an existing
pack.
Multi Commander always reads the English language pack first and store all of the language texts in memory. Then the
language that was configured is read and it will overwrite all of its translated texts. If any text item is not translated then
the English text is used.
Each language pack only contains language files for the built-in Core and any Extensions/Plug-ins that are delivered with
Multi Commander. So an Extension/Plug-in created by a user in their own language will not be found here. If Multi
Commander does not find a matching language file in the language pack, it will search for the language files in the folder
where the extensionor plug-in is located
Having the language files in a zip archive is not optimal when creating translations or modifying them. They are harder to
test and verify. Also the built-in language editor needs to have them unpacked.
When started Multi Commander will first look for the unpacked language packs in the "Languages" folder and if a version
match is found they will beused. If Multi Commander is newer than the unpacked language files, they will not be used.
Tip
Type ":gouserdata" in the command line bar to take you to the Multi Commander UserData folder (eg.
"C:\Users\Mathias\AppData\Roaming\MultiCommander\UserData\")
When starting the Language Editor it will ask if it should unpack the language pack to the UserData folder.
The next time that Multi Commander is started it will read the unpacked language files from the UserData folder, allowing
modifications and additions to be verified
When the unpacked language files in the "UserData\Languages" folder are no longer needed or wanted they can be
deleted. Multi Commander will then automatically revert to loading them from the zipped language packs again.
The language editor panel allow text items to be modified. It is also possible to add support for new language and to export
a language pack.
Save Button
The save button will save all the changes for the currenly selected language.
Type Dropdown
This lists which extension/plug-in types existis in Multi Commander. Select one and the next dropdown will update with all
the extension/plug-ins for that type.
Each extension/plug-in has its own language file.
Extension/Plug-in Dropdown
List all extensions/plug-ins for the selected type. Select an extension/plug-in here and all text items for it will be shown
using the language that is set in the Language Dropdown
Language Dropdown
List all available languages and (at the bottom) there is an option to add a new language.
Change language here and the list will reload with the text item for the selected extension/plug-in for that language
Export/Send Button
The Export/Send button will allow a language pack to be exported (or to be sent to Multi Commander staff for inclusion
into next release).
Restore Button
The Restore button allows previous versions of language files to be restored. Each time you press Save it will backup the
previous version and you can retore to a previously-exported language pack.
The ID is the Text ID used to identify the text item. It consists of a letter + a number. The letter is a way to categorize
different text IDs. Often M is used for text items for Menu Items, D for Dialog, E for Rrror Messages, C for Commands. The
Text item in the picture above is under C, ie. 231 that is selected is actually C-231.
The Text column is the main text that shown for that Text ID.
The Last Column is the secondary text item . Every Text ID can have two text items, one main and one secondary. The
secondary is often used for the Tooltip ("hover" text), but can also be used for the descriptive text for script commands, or
as a caption for an error message.
Text items in Red and Italic are text items that are NOT translated; the core English text is shown instead. The red items
are NOT saved to the localized language files. The localized language files should not contain any English texts. The
English text for untranslated text is automatically picked up (since the English language file are always read first).
Items shown in BOLD are text items that are modified but not yet saved.
By clicking the right mouse button it is possible to opt to show only untranslated items: no translated items are shown and
only red, untranslated items remain.
There are two language name fields. The first is the language name in English and the second is language name as spelt in
the language that is being added.
Under "Culture name code" enter the two or five letter code for that language. If several variations of the language exist,
you should add using the five letter code, so there will be no conflicts.
In "Matching Languages" enter all the language codes that match this language's codes. This field will be used to auto-
select the correct language. So a user running Windows set to any of the matching languages, that language will be auto-
selected the first time Multi Commander is run for that user.
As an example from the image above: if a user has Windows language set to "sv-FI" it will pick the language pack that is
about to be created.
"Matching Languages" can be changed later by pressing the Language Properties button next to the Save button
Press Save to create support for that language. The file UserData\Lanaguge\SupportedLanguages.xml is then updated and
Multi Commander will use this file next time it starts.
Special Characters
Some text items can contain control characters and these must be retained.
The most common such character is \n, meaning "new line" and is most often used for text shown in text blocks or message
boxes. Make sure there is no space after the control character.
"Line1 \n Line2" = Wrong - "Line2" text would then have an extra space before the text "Line2" text.
"Line1\nLine2" = Correct - There is no extra space character before the "Line2" text
There are also %s and %d , meaning that strings or numbers will be inserted at these positions and so these control
characters must also be kept
For example, in an Explorer Panel there is a Text ID "L-31" that looks like: %s/%s in %d/%d Files and %d/%d Folders
selected
All the %s and %d control characters will be replaced with strings and numbers when the text item is used.
Another common control character is the & (ampersand) character. This control character is a text item used in menubar
or popup menu items and is used to underline automatic Shortcut (hotkey or accelerator) characters.
Automatic Shortcuts
Menu items and popup menus can be activated using the keyboard. For example, if you press the Alt key, the "File" menu
on the menu bar is highlighted.
Note that the File menu now has an underscore under the F and the Edit menu has the E underscored.
The menu bar options now read: File, Edit, View, and so on.
The underscore below V in the View menu means that you can now press V to drop that menu. The menu that opens can
also have underscores for many of its menu items such that they, too, can be accessed them quickly using the keyboard.
The decision on which letter is used as a shortcut (accelerator) is decided by the menu item text. Any & characters in a
menu item text will underscore the followin character and it will be used as a shortcut (accelerator) automatically. For
Example, "&View" will be shown as "View", and "Vie&w" would be shown as "View.
This is not unique to Multi Commander, but is a long-standing Windows behaviour. For every menu that is shown there
should be no duplicated shortcuts. For items within a menu there should not be more than two (where possible) items that
have the same underscored letter. The shortcut will activate the first one.
To avoid this situation the & character may need to be moved to precede another character in the translated text.
Since language files do not contain untranslated text you need copy the English files to the new languages which you are
creating. This requires a bit of manual work.
Editing new language files in the UserData\Lanauges location is going to make the export function work without any
problems. So then you can create a language pack for sending to be included into the next version of Multi Commander.
Be aware...
When editing the language files with an external editor the files are in a format called xml and they are encoded using
UTF8. Be careful not to remove xml tags. If xml tags are destroyed the entire xml file will be unreadable. Also special
characters like & and " might need special encoding.
If a language files is not readable by Multi Commander try to open the xml file in a webbrowser. If some xml tags have
been lost the browser can often report that it found an xml error on line xx and you can locate and correct the error.
A window will open that has a dropdown with three options. This is to select which type of language pack you want to
create.
Load selection from file will load a file and treat every line in that file as a selection filter. Each line can be an exact
match for a file/folder that you want to select or it can be a selection filter containing wildcards.
Save/Load to/from memory options work the same way but will not survive a restart of Multi Commander.
Compare Folders
Compare Folders will compare the paths in the source and target panel and select differences depending on which
compare command is called
It is possible to enable or disable whether the compare command should work on only files or only folders.
Size calculation will be performed on all the selected folders. If no folders are selected then the size of all folders will be
calculated.
Selecting folders with the space-key will automatically calculate the size of those folders.
The size calculation is done in the background and can be aborted by pressing the ESC key.
If a folder's size has been calculated, and files are deleted from that folder from within Multi Commander, the folder size
will be automatically recalculated and updated.
Select the files or folders whose properties you want to change, then select "Change Properties (Attributes/Time)..." under
the Tools menu.
Multiple files and folders can be changed at once. It is also possible to change all the files in folders and sub-folders.
If Blocked (as 'Archive' and 'System', seen in the image above), the attribute will not be changed: the current attribute will
be kept.
If you hold down CTRL and Double Click in the date or attribute column for a file/folder, the Change attributes window
will be shown, but only for that file/folder, even if multiple files are selected.
Create Folders
Using the Create Folder command found under the Tools menu, you can create new folders at the current path in an
Explorer Panel.
The folder specified can be a complete folder path. Intermediate sub-folders will be created as needed.
You can also create multiple folders at once as long as you separate the folder names with ";".
Shortcuts
When the Create Folder Dialog is shown there are some optional actions that can be performed:
F5 - Insert the text from the clipboard into the folder name field
F8 - Remove all dots in the text name field
F9 - Insert todays date as YYYY-MM-DD in the folder name field
Shift+F9 - Append today's date as YYYY-MM-DD in the folder name field
For example, you might list and sort those folder by date, and you want the date/time of the folder to show the date/time of
the most recent file in that folder rather than when something was last changed in the folder.
This tool will scan the selected folder and subfolders and set the date/time of the folders to that of the most recent file it
finds.
Select the folder you want to change then select "Correct folder date/time" from the Tools menu.
You can specify two kind of filters for the scanning: Ignore and Include filters.
Ignore Filter
The first filter is the ignore filter. It specifies the files and folders that you want to ignore when finding the most recent
date/time.
If you enter *.txt here. It will ignore all *.txt files, even if they have a date/time that is more recent than other files.
Include Filter
If you specify an include filter then only files matching this filter will be checked. Eg. if you enter *.jpg here it will only
check the date/time on *.jpg files.
Under the Tools menu you can select "Find Opened/Locked Files" to find what program has a file/folder locked so that
you can close or kill it. If you are running with standard user permission you will only be able to scan the system for
processes that are running under your account: System & Service processes will not be found.
Running Multi Commander as an Administrator will allow you to also find Services and System processes that have files
open or locked.
Send to Clipboard
Selecting To Clipboard under the Tools menu opens a submenu that allows you to select and copy various file properties
directly to the clipboard. You then can paste that information wherever you wish.
Properties for all selected files/folders will be sent to the clipboard. If no files/folders are selected the file/folder in focus
will be used.
Which properties to send depends on which command you select. The most commonly-used are the full path including
filename or just the filename of the selected files or folders.
Shortcuts
The default keyboard shortcut for copying the complete path is Ctrl+P
For copying only the file/folder name it is Shift+Ctrl+P
Send to Clipboard is also available on the toolbar and when clicked, the complete paths of selected files/folders are copied
to the clipboard.
If the right mouse button is pressed on the toolbar button a popup menu with the other options is shown.
Rename Tools
Under "Rename" in the Tools menu there are a number of extended rename operations that can be performed.
These Rename commands are performed on all selected files and folders.
Uppercase / Lowercase renames the selected files/folders to the same name but with all uppercase or all lowercase
letters.
Capitalize renames all selected files and folders to lowercase, with only the first letter in each word uppercase. A word is
defined as a string of characters preceded by space, dot or underscore.
Replace text in name will replace a substring in all the selected file/folder names with other text.
Similar name, different extension is a special rename operation that will only rename selected files (not folders).
All the selected files should have the same name but with different file extensions.
The selected files will be renamed with the new name, but the file extensions are left unchanged.
Some of these tools are also availible when right clicking on the Rename button on the toolbar
Text Tools
Under the Tools menu you can find some special Text Tools.
There are tools for converting the line endings of text files to those different platforms and a tool for converting tab
characters to spaces.
And you can also reformat XML files to structured layout or compact layout.
You can find more information about them under Text Conversion Tools.
Sort Lines will sort the lines in text files using many advanced options.
Find and Replace will allow you find find and replace text in files. It support MultiLine find/replace matches and many
other options.
Convert Tools
Sort Lines..
Sort lines in a file. Read more about this at Sort Lines.
Sort Lines has many options to control how the sorting should be done. It will sort lines in all selected text files. The
number of files it will try to sort is shown in the dialog.
Sort Lines will automatically identify file formats: files encoded in ASCII/Unicode/UTF8 are supported. Note that files
identified as binary will be ignored.
The newline character(s) that the file currently has will be kept, So if a file has only CR (carriage return) as a newline
character the new file will also have only CR.
In the Filename field you set what the name of the sorted file will be. Sorted files will always be saved in the same folder as
the original and only the Filename can be set: the original extension will be kept.
If multiple files are select you will see a "*" in the Filename field. The * represents the original Filename and file extension.
If you have two files select named "MyFile1.txt" and "MyFile2.txt" and the Filename field has the value "*_sorted.*" the
new Filenames will be "MyFile1_sorted.txt" and "MyFile2_sorted.txt".
In the Save as... dropdown list you can select to save the new file with a different name. You can also choose to keep the
original name (but rename the original files by adding .bak to its name), or it can delete the original file.
text this option will ensure that those 3 lines are not moved by sorting.
Sort lines by
There are 3 different ways to sort lines: Entire line, Substring or by Line item (record)
Entire line
This will compare the entire line from the defined start position to the end.
Fixed length
If the substring that the sorting is based on has a fixed length you can define it here.
End character
If the substring that the sorting is based on should end when it comes to a specific character.
Line Item
If every line has items (records) that are separate by a special character you can defined which item/record it should be
sorted by.
Item separator
Which character will separate the items (records) from each other. (Eg. for a comma-separated list, that would be comma
"," ).
Item
Which item on the line the sorting should be based one First item is 1, second is 2, and so on.
Options
Sort Method
There are three methods to sort by: Text,Date and Number.
Text
The text to be compared for sorting is plain text.
Date
The text that will be compared for sorting is actually a date or time written as text.
To be able to compare date/time correctly the correct date/time formatting of the date/time must be provided. If the
date/time matching format is not correct the sorting will not be correct.
Press the "<" button under the dropdown list for examples of date/time matching formats to use.
Number
The text that will be compare is actually numbers: the number will be compared as a digital value and not as text. Leading
zeros (0) will be ignored: only digits will be used.
Ignore case
Ignore case when sorting. "A" and "a" will be treated as the same character (but see 'Language-based sort order' above).
Reverse order
Reverse the sort order. By default sorting will be A to Z and 0 to 9.
Enabling this will cause sort order to be Z to A, and 9 to 0
Find and Replace will find one or many substrings in files and replace them with one or many new substrings.
Find and Replace will search and replace in all selected files. The number of files selected is shown in the dialog.
It will automatically identify file formats. Files encoded in ASCII/Unicode/UTF8 are supported.
Files identified as binary will be ignored, however, the identification of binary files can never be 100% accurate so be
careful and do not select any binary files.
The newline character that each processed file uses will be kept. When doing Multiline find/replace the newline inserted
will be the same as the file already has.
In the Filename field you will see what the name of the processed file will be. Files will always be saved in the same folder:
only Filename can be changed
If multiple files are select you will see a "*" in the Filename field. The "*" represents the original file name plus file
extension.
If two files are selected named "MyFile1.txt" and "MyFile2.txt" and the Filename field contains "*_replaced.*" the new
Filenames will be "MyFile1_replaced.txt" and "MyFile2_replaced.txt".
In the Save as... dropdown list you can select if the new file should be saved with a different name; or it should keep the
original name but as a backup by renaming (adding .bak to it); or if the original file should be deleted.
Text to find
In the field the text part(s) to be replaced is entered.
Exactly how the find will work depends on which find and replace mode is selected (see below).
Options
Ignore case
Ignore case when finding matches
Encoding a file into base64 format is done if you want to convert a binary file into a format that is text-friendly. Base64
encoded files grow about 25-50% in size compared to their binary format.
Decoding a base64 file will turn the file back into its original form.
File Security
Under the Tools menu is a File Security entry with which you can change permissions for files and folders.
This function requires Administarator permission to operate, so you may need to run Multi Commander as an
Administrator.
Take Ownership
Allows you become the owner of the selected files and folders.
Add Permissions
This adds permissions for users to the selected files and folders. You can easily add read-only access or read/write or full-
control.
If you want to give everyone access to a file/folder you can add read/write or full-control access to the group Everyone for
the selected files/folders.
Picture Tools
Under the Tools menu is a Picture Tools option that opens a submenu containing the following options:
Supported target picture formats are: JPEG, PNG and Bitmap (BMP).
Options that may be selected allow you to delete the original file if successful, and/or overwrite if the target file already
exists.
Rotate Pictures
This rotates the selected picture(s) according to the selected rotation or flip settings.
Auto Rotate
Auto Rotate reads the EXIF information from the picture file; if orientation information is present the image is rotated
according to that information.
Audio Tools
Multi Commander Audio Tools is a default extension included with Multi Commander.
This extension will add audio properties like ID3 tags as columns for file browsing.
It also provides several audio-related tools, for example removing all ID3/APE tags from an MP3 file, and exporting all meta
data like ID3 or APE tags and audio properties from an audio file into a text file.
MP3 file information will be shown in a Window where the ID3 tags can be viewed and edited.
Video Tools
Movie information in columns
Several users have asked for a way to show columns with movie information on movie files they have on their drives. With
the help of some of you there is now a version of this feature working.
(If you Ctrl+double-click on "Web" in the IMDB Link column, the browser will open to the page for that movie on
imdb.com.)
Before you can show the movie information in columns, it must be retrieved and cached locally.
This is done by selecting Menu->Tools->Video Tools->Scan for Media Information.
You then need to configure how the tool should identify movies, how to store the media information and more...
To be able to identify your movies you must configure how to identify the movie title: from the file or folder name, for
example. (To make it easier for the system to figure out the Movie Title it is recommended to store the movie file in a folder
that is named the same as the movie title.)
Two sources are available for getting movie information, IMDB and Rotten Tomatoes.
(Retrieving information for TV Episodes is not supported yet.)
If you only want to scan for new movies that you have not already indexed, select Scan for new content only. If a movie
already has a *.mediainfo file or is listed in the local MediaDB, then the movie is skipped.
If you want to re-scan movies you have previously scanned, select Scan for new content, refresh existing.
Storing information in a MediaDB allows faster access when showing the columns, especially if you want to show movie
information on the folder that contains the movie. But if you have your movie files on a NAS or access them over the
network from another computer and you access these movies from multiple computers, then you need to rescan your movie
archive on every computer you access it from, then store them as *.mediaInfo files that are stored with the movie files.
To get the best of both worlds, ie. the speed of access and without the need to re-index the movies on multiple computers,
you can elect to store them in both locations. If you scan for new content and both *.mediaInfo storage and MediaDB
storage are selected and an existing *.mediainfo fileis found, it will be copied to the MediaDB on the current computer. Just
make sure that the option "Scan for new content only" is selected, or the tool will try to update it.
Managing Aliases
Aliases are abbreviations for commands that can be used on the Multi Commander Command Line
Instead of writing a long command or path you can use the Alias Manager to create an alias for that command. An alias is a
one-word abbreviation that can be automatically expanded into the complete command. Everything that is written after the
alias is appended as a parameter to the expanded command.
For example, if you create an alias for notepad.exe and call it "n", then you can write "n mytext.txt" in the Multi
Commander Command Line and it will be expanded into "notepad.exe mytext.txt" before it is executed.
Quick command
From the command line field it is possible to use the built-in quick command "alias" or "alias2" to create an alias command.
Usage Syntax
alias <alias>=<expand into>
alias2 <alias>
The command alias2 takes the current path and assigns it to the specified alias.
Example
alias pic=E:\MyPictures
alias2 pic
The setup is divided into separateconfigurable actions: View, Edit, Run/Open and Icon.
Info
The configuration of which FileSystem Extensions should be associated with different file extension is NOT configured
here.
(Eg. what file extensions the Zip FileSystem extensions should use)
It is configured under each File Extension in the Extensions and Plug-ins Manager.
Normally, when a file is run/opened, Windows will decide which program should be started for that file type.
What you The configure here is used before Windows gets involved and if running Multi Commander as a portable
installation you can configure what other portable programs Windows should use.
When you decide to View/Edit or Run/Open a file from Multi Commander it will go through the list of configurations and
try to find a matching one. It will match configurations based on the "Extensions" field. You can also specify that a specific
program should be valid only for certain paths.
For example, two different viewers are used for viewing jpg files, but for files located in "D:\Photos" perhaps you want to
use a particular one. For all other locations the other viewer is used.
If no matching configuration entry is found the [Default Editor] / [Default Viewer] program is used.
To change the default viewers/editors that are used change the [Default Editor] / [Default Viewer] entries under
Viewers/Editors.
Icon setup is used if the default program icon should be overridden. Viewers/Editors can also override the icon. I so it will
be listed in the icon page. Running Multi Commander in portable mode you can make sure that the icons always look the
same.
Press the Add button under the list of setup entries to add a new one. Select existing entry and press the Remove the
button to remove an entry. [Default ... ] Entries cannot be deleted.
1. Name
Name of this setup item.
External Program
Internal Extension
Internal Extensions can register themselves as viewers/editors/launchers. They will then be list as extensions that
you can select from.
For Viewer there exist two default extensions: "MC Picture Viewer" and "MultiDataViewer"
Windows Action
If an external program has been set, you can press the [R] button to convert the path to a relative (to Multi
Commander.exe) path.
This is necessary if you are running in portable mode. The selected program must be located on the same drive as Multi
Commander.exe.
If an external program was set, this field will be "Program Parameters". Here you can add any program-specific
parameters that should be passed to the program. Pressing the "[<]" button will open a list of special tags that can be
added. These tags will be expanded when the external program is run.
4. Icon
By checking the option "Override default icon" a new icon can be configured. This icon will be used for all matching file
extensions and override the default icons that would be used
However, if you have Multiple FileType Setup entries that match the same file extensions, and all of them have the
override default icon enabled, then only the first will be used.
5. File Extensions
A space-separated list of all file extensions that this setup should affect.
Pressing the "..." button will open a window that allows for easier editing of the file extension list.
6. Path Matching
A file type setup entry can be set to be valid only for a special path(s).
Press the [Add] button under the "Path Matching" box and add that path there. If you see an "*" in front of the path it
means that the Path Matching rules are valid for that path and all its sub-paths.
Icon
By default Multi Commander will use the icon that Windows has defined for a file type. On this page it is possible to
override that.
The list will show all the icons that Multi Commander is overriding
If an icon is overridden by a viewer/editor file type entry then it will be listed here. It is not possible to remove the icon
here - that must be done on the Viewer/Editor file type page.
To add an entry press the "[Add]" button then enter the file extension that the icon should be shown for.
Enter the path to a .exe/dll/.ico and select the icon idx from that file that should be used.
Pressing the "[...]" button opens an Icon Picker window that allows .exe/.dll/.ico files to be browsed and viewed. This
makes it easier to find the correct icon.
Press the [R] button to convert the path to a relative (to Multi Commander.exe) path. This is useful if you are running in
portable mode and want to have relative paths.
All internal icons used by Multi Commander are stored in MCIcons.dll, This files also contains some extra icons that can be
useful. This file is found at the same location as Multi Commander.exe.
Button Editor
The Button Editor is used to change and customize the buttons on the Button Panel.
To change how the buttons in the button panel work you must open the Button Editor by clicking on Button Editor in
the Configuration menu.
When the Button Editor is shown the button panel changes to edit mode. Click on the button you want to edit. To edit a
button in one of its alternative modes hold down a mouse or key modifier to toggle the button panel state to see the button
you want to change. (Ctrl / Shift/ Ctrl+Shift or Right/Middle mouse button).
There are six kinds of command you can create for a button. These are the same types of command that you can create in
the "user defined command" window.
External Commands
Custom Commands
Batch Script (.BAT)
MultiScript
Select which command you want to have run when the button is clicked.
Internal Commands
These are Commands that are either internal to Multi Commander or are extensions (mostly commands that you find in the
menu bar).
Two dropdowns will be shown in order. In the first select which module contains the command; in the second select the
required command within the module.
External Commands
These are external programs to be executed.
Custom Commands
Custom commands are simple commands that are exposed by Multi Commander or by an Extension or Plug-in.
You can also use the helper function list boxes to create the command.
To use them, you first select what group of functions you want to add a command from. All Extensions and Plug-ins are
located in separate groups. When a group is selected the function list is updated with all functions that are available from
that group. Select the function that you want to use and press the 'Add' button; this will add the function to the
"Command" field. Then select the option or parameter you want to add. If the parameter ends with an "=" sign, then you
are required to add additional parameter information.
You can insert dynamic tags into the script that will be expanded when the script is generated.
MultiScript
This is the most advanced type of command you can create. It uses scripts that run under the Multi Commander Script
Engine.
When the Wizard Mode is active you will see that the Button Panel will change its background color.
From
To
When a file or folder now is dropped on to a button the Wizard Window will be shown:
The name and tooltip are generated automatically but you can change them if you wish. Then you need to specify whether
it should generate an Open File command or a Go to File/Path command for the button, so that when the button is pressed
the file you dropped on the button either should be launched or the Explorer Panel should go to that file or path.
Pressing the Wizard Mode button again will turn off the Wizard Mode for the Button Panel.
This will list all of your User Defined Commands on the left and on the right will show your user-defined menus.
The menu is shown as a tree list with the top level being menus on the menu bar.
You can drag and drop menu items in the tree list to rearrange how you want to display items.
The Add Menu button adds a new top-level menu or sub-Menu.
Select the User Defined Command you want to add on the left, and select under which menu you want that command
added on the right. Then press the "-->" to add that command to the menu tree.
Most of the shortcut keys in Multi Commander can be changed. The shortcuts are split up into different sections: each
module/extension has its own list of commands, split between global and module-specific commands.
Global commands can be called from any module. These are generally menu commands, and are available in all modules
and extensions that support them. Since the commands are global within Multi Commander, shortcut keys must be unique
across extensions.
Module-specific commands are only available when that extension is currently in focus. Multiple extensions can have the
same shortcut assigned.
To find the command you want to change, first select the Module it belongs to, and then choose the Category (global or
module-specific).
When you have found the command you wish to change, click to select it and then click on the Shortcut key field below the
list. Press the key combination that you want to assign to the command, then press "Assign" to set the shortcut.
If the command you have chosen is already assigned the Conflicts field informs you about the conflict and which command
already uses that shortcut. You need to resolve the conflict before you can assign your key combination.
To remove a shortcut, select the command and then press the "Remove" button. Alternatively, choose a new key
combination.
"Command code" is the internal name of the command. It is used if a command should be executed from the custom
command MC.RunCmd
Tips
To get a list of all the shortcuts, you can export them to a text file by pressing the "Export to file" button.
If you hold SHIFT while clicking on the "Export to file" button, the exported list will also contain the internal command
codes.
References
Default keyboard shortcut (Commander styled setup)
Default keyboard shortcut,(Windows Explorer styled setup)
Command Shortcut
Go Back Alt + Left
File - Copy F5
File - Move F6
View - Refresh F2
File Manager
Global file manager hotkeys are also valid when focus is in another extension, if the extension supports it.
Command Shortcut
File Tools - Calculate folder sizes Shift + Alt + Return
File Manager-specific hotkeys are only available when focus is in the file manager view.
Command Shortcut
Show drive selection box (Left side) Alt + F1
File Search
Command Shortcut
Show / Hide Search window Ctrl + F
Command Shortcut
Go Back Alt + Left
File - Copy F4
File - Move F6
View - Refresh F5
File Manager
Global file manager hotkeys are also valid when focus is in another extension, if the extension supports them.
Command Shortcut
File Tools - Calculate folder size Shift + Alt + Return
File Manager-specific hotkeys are only available when focus is in the file manager view.
Command Shortcut
Show drive selection box (Left side) Alt + F1
File Search
Command Shortcut
Show / Hide Search window Ctrl + F
Filters
Core Settings
The Core Settings are settings in Multi Commander that affect how the core behaviour works. To configure these, select
"Core Settings" under the Configuration menu.
Settings like Language, Tab Location, File System Operations and Logging can be found here. These are settings that are
not affected by extensions or plug-ins.
You can change the Layout, the colors , how the mouse should work, etc.
For examples of different layouts and color setups, see screenshots here.
Users who have never used this style before might feel more comfortable with the way Windows Explorer works. Since
Multi Commander is very configurable it can be changed to look and feel like Windows Explorer. That can be tedious work
because there is a lot of configuration that needs to be changed. However, the Quick Look'n'Feel Setup makes it possible
to change this quickly and easily.
To access this, select "Quick Look'n'Feel Setup" from the Configuration menu.
To Change everything to Windows Explorer look and feel, select Windows Explorer Compatibility Look'n'Feel.
If you only want to Change some part of the configuration Like the mouse or colors settings. Choose the Customize option.
There you can select between different configurations for keyboard, mouse and color setup.
Open the User Defined Commands dialog by selecting "User Defined Commands" from the Configuration menu.
Create Command
Follow these instructions to create a command:
1. Click on the new button and enter the name you want to give your command. (The name can be changed later by
editing the name property and re-saving the command.)
2. Fill in the tooltip / description for the command. This text will be shown as a tooltip when you hover over a
command (if the command is assigned to a button on the button panel) or as a menu entry or description when
needed.
3. Next select which type of command you want to create. There are five types of command available:
1. Internal Commands
2. External Commands
3. Custom Commands
4. Batch Script (.BAT)
5. MultiScript
4. When you are done, press the Save button to save the command.
5. You now need to assign the command to a button, hotkey, menu item or alias so you will have a way to access the
command.
From the Button Editor you can configure a button to use a "User Defined Command" and then choose which of
your commands to assign to it.
From the Menu button you can add your command to a menu item that will be shown on the menu bar. The HotKey
button will open the Keyboard customization window with your command pre-selected so that you can assign a
hotkey to it.
The unique ID that is shown in the Unique ID field at the top right of the screen (generated when the command was
saved) allows you to access this command from the command line bar. The easiest way to do that is to create an
alias for that id with a name you can more easily remember, using the Alias Editor (found under the Configuration
menu).
One reason to create a User Defined Command that uses internal commands is to create an alias for that command so you
can call that command from the command line bar. Another use would be to assign that command to a button on the button
panel.
The command might also be something that is not normally visible in the menu bar, but you would like to put it there. In
this case, you can create a User Defined Command that calls the internal command, then add the User Defined Command
to the menu bar using the User Menu Configuration.
MultiTags
MultiTags are specially formatted texts that will be replaced with dynamic information. For example, the MultiTag
${focusfilepath} will be replaced by the full file path to the file currently in focus. The command is run through a process
that will translate MultiTags before it is executed.
Paths are not quoted by default, so if you need quotes around the path you have to put them around the MultiTag, e.g.
"${focuspath}"
Options
When you press the Options button you will get a list of options you can assign to the command, as shown above.
Run as Administrator
When this option is checked the program will be run with Administrator privileges. If you are running as a normal user you
will be presented with a UAC dialog asking for permission to run the program as Administrator. You might also need to
enter an Administrator login and password, depending on your user account permissions.
If you run with UAC disabled then the system will launch the program as Administrator without showing you a UAC dialog.
Display Confirmation
This option will display a dialog asking the user to confirm that the command really should be run. This is recommended to
be used if the program to be started could change anything on the computer, such as removing or modifying files. If the
command is shown in the menu bar for example, it is very easy to accidentally call the command, and you might make
changes to your system when you do not want to.
Command Arguments
The dialog allows arguments (parameters) to be sent to the command. These are sent to it if the command is called from
the Command line bar or if files are dropped on a button and the command has enabled the option "Use Dropped files as
parameter", or if this command is called from a Custom Command or MultiScript command.
The parameters are accessed by using the MultiTags ${param:<num>} where <num> identifies which argument to use.
${param:0} will be the first parameter, ${param:1} the second, ${param:2} the third and so on.
Custom Commands can also be called from MultiScript and that combination allows you to create very advanced and
powerful commands.
(The example in the image above will start a filesearch for *.jpg file in the path of the current source panel. Furthermore, the search will autostart.)
Create a command
Custom commands are created by choosing Custom Commands in the Command Type dropdown of the User Commands
dialog. To help you create the Custom Command there are three dropdown boxes from which you choose Group, Function
and Options/Parameters. Using these dropdowns you can find all the functions and options that are provided for each
group.
The Group dropdown shows all the modules that have registered Custom Commands. The commands are separated into
groups showing which module, extension or plug-in they belong to.
When a module is selected the Function drop down list is updated to show the functions that module supports. When a
function is selected the Options/Parameters drop down list is updated with the options and parameters you can send to
that function.
If you know the command you want you can write it directly into the editor. You do not have to use the drop down lists;
they are just there to help you.
MultiTags
MultiTags are specially formatted texts that will be replaced with dynamic information. For example, the MultiTag
${sourcepath} will be replaced with the full path of the source panel (the currently active panel). The Custom Command
is run through a process that will translate MultiTags before it is executed.
Options
When you press the Options button you get a list of options that can be assigned to the command, as shown above.
1. Display Confirmation
This option displays a dialog asking the user to confirm that the command really should be run. This is
recommended if the program to be started could change anything on the computer, such as removing or modifying
files. If the command is for example shown in the menu bar, it is very easy to accidentally call the command, and
you might make changes to your system when you do not want to.
2. Run Separately
When this option is enabled the command is run separately for each file that is selected, with the MultiTag
${currentfilepath} changed to match that file path.
Command Parameters
The script supports parameters to be sent to the command if it is called from the Commandline bar.
The parameters are accessed by using the MultiTags ${param:<num>} where <num> is the index of the parameter to
use. ${param:0} will be the first parameter, ${param:1} the second, ${param:2} the third and so forth.
MC.Explorer.Selection.CompareFoldersForNewest Compare target and source views and select newest item
MC.Run
Run an external program
If command is run from a MultiScript. the execution return code is available in $__CMDRESULT. (Only if the WAIT
option was used)
Options
MC.RunUserCmd
Run a User Defined Command
Options
MC.RunCmd
Run an Internal or User Defined Command
Options
MC.CmdLineSet
Set a text in the Command Line field
Options
MC.CmdLineRun
Run a command via the Command Line field
Options
MC.View
View file. Viewer is selected by finding a match in the file type setup
Options
FILE Path to file to view. If not specified, the file in focus will be used
VIEWAS When looking for viewer to use, select as if file is this file type (eg. VIEWAS=".txt")
MC.Edit
Edit file. Editor is selected by finding a match in the file type setup
Options
EDITAS When looking for editor to use, select as if file is this file type (eg. EDITAS=".jpg")
FILE Path to file to view. If not specified, the file in focus will be used
MC.SetActivePanel
Set what panel side should be active
Options
PANEL What panel should be active. LEFT, RIGHT, TOP, BOTTOM, TOGGLE
MC.SetActiveTab
Set what tab should be active
Options
PANEL Which panel side the tabs are located in: LEFT, RIGHT, TOP, BOTTOM, ACTIVE, INACTIVE
TAB Tab to activate, starting with 1 and increasing. (Eg. TAB=2 or NEXT, PREV)
MC.CloseAllTabs
Close all tabs
Options
MC.SaveTabs
Save current tabs panel layout
Options
MC.LoadTabs
Load a tabs panel layout
Options
MC.ChangeTabSession
Change to a preconfigured tab session
Options
ID ID of the tab session to activate
MC.XChangeSettings
Change a Multi Commander UI setting. (See online doc for supported settings to change)
Options
MC.BindKey
Bind a keyboard key combination to a command (eg. BindKey CMD=Core.1360 KEY=Ctrl+N)
Options
MC.UnBindKey
Unbind a keyboard key combination from a command (eg. UnbindKey CMD=Core.1360)
Options
MC.ShowFavWindow
Show Favorites Window
Options
MC.ShowFavPopup
Show Favorites Popup menu
Options
POS Where to show the popup (Mouse, CenterScreen, CenterMC, "X,Y" pos )
MC.ShellPaste
Paste clipboard data using Windows Shell
Options
PATH Path where to paste the data. If not set current active path is used
MC.LoadButtonPanelLayout
Load a button panel layout from file
Options
MC.Filesystem.Rename
Rename a file or folder. Current file will be used if FILE parameter is not used
Options
Show a dialog asking for the new name. If 'NEWNAME' is also specified, it will be used as a suggested
ASKNAME
name
MC.Filesystem.Delete
Delete a file(s) or folder(s). If no PATH parameter is given the current selected file(s)/folder(s) will be used
Options
MC.Filesystem.Makedir
Create a new folder
Options
MC.Filesystem.PackFiles
Pack files into an archive (eg. .zip file). If no FILES parameter is giving the current selected files/folders are used
Options
FILES Which files or folders to pack. Separate multiple files and folders with ';'
FILTER Filter to use. Separate filters with space eg. '*.txt -readme.txt *.info'
Pack the selected files/folders into separate archives. (TARGET must have wildcard in name. eg
SEPARATE
"e:\file_*.zip")
MC.Filesystem.Unpack
Unpack archives into a folder
Options
FILTER Filter to use. Separate filters with space eg. '*.txt -readme.txt *.info'
Password to use if the archive is password protected. (If not set, a dialog will be shown if password is
PASSWORD
needed during unpacking)
MC.Explorer.NewBrowser
Open a new Explorer Panel tab
Options
FLAT Show path flat. Path and subfolders will be flattened and shown together
SIDE Open the new Explorer Panel tab on the LEFT, RIGHT, SOURCE, TARGET or AUTO
MC.Explorer.CloseAll
Close all Explorer Panel tabs
MC.Explorer.Goto
Show path in the Explorer Panel
Options
FLAT Show path flat. Path and subfolders will be flattened and shown together
MC.Explorer.Select
Select files and folders in the Explorer Panel
Options
MC.Explorer.Deselect
Deselect files and folders in the Explorer Panel
Options
MC.Explorer.Refresh
Refresh the Explorer Panel
Options
FORCEREBUILD Rescan and Rebuild (Remove all caches and rebuild them)
MC.Explorer.RefreshTree
Refresh the Explorer Panel
MC.Explorer.Copy
Start a Copy operation
Options
NODIALOG Do not show the 'Copy To' dialog. Use default settings
MC.Explorer.Delete
Start a Delete operation
Options
MC.Explorer.Move
Start a Move operation
Options
NODIALOG Do not show the 'Move To' dialog. Use default settings
MC.Explorer.Makedir
Create folder
Options
MC.Explorer.SetViewFilter
View filter for the Explorer Panel
Options
MC.Explorer.GetViewFilter
View filter for the Explorer Panel
MC.Explorer.SetColumns
Change what columns to show, change to a defined column set
Options
MC.Explorer.SetViewMode
Change view mode of Explorer Panel that is in focus
Options
MC.Explorer.SetTabProp
Change tab properties of active Explorer Panel tab
Options
RESET Reset all tab properties. No other parameter used if this is set
MC.Explorer.Sort
Change which column data is sorted by
Options
MC.Explorer.SizeFolder
Size current selected folder(s)
Options
MC.Explorer.SetItemFocus
Change focus to specified a file/folder in the current path
Options
MC.Explorer.SetColoringRules
Set Color Rules profile to use. Do not specify a name if you want to use the default color profile
Options
MC.Explorer.RefreshColoringRules
Refresh file coloring for all files and folders
MC.Explorer.ChangeSetting
Change an Explorer Panel settings for the current active tab temporarily. Settings will NOT be saved See
documentation for more information
Options
MC.Explorer.Selection.Select
Select items by filter (Support all views)
Options
MC.Explorer.Selection.Unselect
Unselect items by filter (Support all views)
Options
MC.Explorer.Selection.SelectAll
Select all items
MC.Explorer.Selection.UnselectAll
Unselect all items
MC.Explorer.Selection.InvertSelection
Invert selections of items
MC.Explorer.Selection.SelectByColor
Select by color (Color set by File Coloring Rules)
Options
RULE Name of the color rule to select files/folder by. (File coloring profile having the specified rule must be active)
MC.Explorer.Selection.UnselectByColor
Unselect by color (Color set by File Coloring Rules)
Options
Name of the color rule to unselect files/folder by. (File coloring profile having the specified rule must be
RULE
active)
MC.Explorer.Selection.SaveSelectionToMemory
Save selection to memory
Options
MC.Explorer.Selection.LoadSelectionFromMemory
Load selection from memory
Options
NAME Name that you want to load the selection from (Optional)
MC.Explorer.Selection.SaveSelectionToFile
Save selection to file
Options
MC.Explorer.Selection.LoadSelectionFromFile
Load selection from file
Options
MC.Explorer.Selection.LoadSelectionFromClipboard
Load selection from clipboard
Options
WILDCARD Do wildcard selection, (Will insert * before and after every part before doing the selection)
MC.Explorer.Selection.CompareFoldersForDuplicates
Compare target and source views and select duplicates
Options
MC.Explorer.Selection.CompareFoldersForSelected
Compare target and source views and select selected on target
Options
MC.Explorer.Selection.CompareFoldersForMissingAndNewer
Compare target and source views and select missing and newest
Options
MC.Explorer.Selection.CompareFoldersForMissing
Compare target and source views and select missing
Options
MC.Explorer.Selection.CompareFoldersForNewest
Compare target and source views and select newest item
Options
MC.FileSearch.Search
Search for files and folders
Options
ATTRIBUTE Match file attributes. Any of the following characters are valid: ARHSDCE
EXCLUDE Path(s) to exclude. if folder with matching name is found, it is not searched
PANEL What panel to open the search in. (LEFT, RIGHT, ACTIVE, INACTIVE)
SEARCHFOR Match files or folder that has this substring in the name, (or use wildcard)
SIZE Match files with a file size. Use > or < for more or less then. Eg: ">2000000"
TIME Set a time range from now. (Valid values: TODAY, YESTERDAY, THISWEEK, THISMONTH)
TIMEFROM Match files with a date from this time. (Format date/time as YYY-MM-DD HH:MM:SS)
TIMETO Match files with a date to this time. (Format date/time as YYY-MM-DD HH:MM:SS)
MC.Special.SelectOldestByName
Select oldest based on file/folder name
Options
MC.Utils.CreateLink
Create a File System Link, Symbolic, Hardlink, Junction or Shortcut
Options
MC.Utils.SortLines
Sort Lines in text file
Options
LINEOFFSET Where on the line to start sorting from (1-based; first position is 1, not 0)
TARGET Name of the new file. (Name filter like "*_New.*". Don't include path)
MC.Utils.FindAndReplace
Find and Replace in file
Options
MODE Find and Replace Mode. One, Many, ManySame, Multiline (Default: One)
TARGET Name of the new file. (Name filter like "*_New.*". Don't include path)
MC.CheckSum.Verify
Start CheckSum Tab and verify file(s)
Options
ALLSELECTED Verify all selected files (and files inside selected folders)
FILE Path to file to verify. If folder then all checksum files in that folder will be used
MC.CheckSum.Create
Start CheckSum Tab and create checksum file
Options
FILENAME Filename of the SFV/MD5 file to create. If name is not set it name is auto-generated
MC.DataViewer.View
Open a file for viewing
Options
MC.PictureTools.Convert
Convert one or many pictures to another picture format
Options
FORMAT Target format for conversion. Can be one of the following: PNG, JPG, GIF, BMP, TIF
Save new file as. (Only valid if you also used FILE ) By default the file name is kept but with the new
SAVEAS
file extension
MC.PictureTools.Resize
Resize one or many pictures
Options
HEIGHT Height of target image in pixels or percent Use * to auto-calculate when keeping aspect ratio
Save new file as. (Only valid if you also used FILE ) By default the file name is kept but with the new
SAVEAS
file extension
WIDTH Width of target image in pixels or percent Use * to auto-calculate when keeping aspect ratio
MC.Explorer.SetViewFilter FILTER="*.jpg"
MC.Explorer.SetViewFilter FILTER="-/.svn"
Run Application
Run an External Application:
MC.Run CMD="Notepad.exe"
Let Windows decide how the file should be opened. In the example below, Windows will open it in your default browser:
Pack Files
Pack all files in "D:\MyFiles" using zip into a file named Backup.zip in the target location:
Pack all files in "D:\MyFiles" using zip into a file named "Backup-2010-03-10-12:22:22.zip" and store the file in the current
target location. The date and time will be the date/time at the moment the command is run:
Batch Scripts are based on the executable script system in Windows that goes back to the old DOS days. It is still used and
is quite useful, especially if you want to run a lot of external programs one after the other. In addition, you can send the
output of one program to be used as input to another.
When a Batch Script command is run a .bat file is generated from this command; the script is then run with its working
folder set to the current source path.
MultiTags
MultiTags are specially formatted texts that will be replaced with dynamic information. For example, the MultiTag
${focusfilepath} will be replaced by the full file path to the file currently in focus. The command is run through a process
that will translate MultiTags before it is executed.
Paths are not quoted by default, so if you need quotes around the path you have to put them around the MultiTag, e.g.
"${focuspath}".
Options
When you press the Option button you will get a list of options you can assign to the command.
Command Arguments
The dialog supports arguments to be sent to the command. These are sent to it if the command is called from the
Command line bar or if files are dropped on a button and the command has enabled the option "Use Dropped files as
parameter", or if this command is called from a Custom Command or MultiScript command.
The parameters are accessed by using the MultiTags ${param:<num>} where <num> identifies which argument to use.
${param:0} will be the first parameter, ${param:1} the second, ${param:2} the third and so on.
With MultiScript, advanced scripts that use variables, functions and conditions can be created. While Custom Commands
access core Multi Commander functionality in the same way that the user would access it via the UI, MultiScript accesses
the functions at a lower level, giving more control. It will also not always show the standard UI for the operation since the
core functions are accessed directly.
MultiScript can call Custom Commands, so it is possible to create scripts that combine the flexibility of MultiScript with
the simplicity of Custom Commands.
(The example in the image above will find the first *.avi or *.mkv in the folder in focus, and then send that file to the Windows Shell to be opened by
the default video player).
Script Engine
The MultiScript Engine is a relatively simple but powerful script engine. It has support for everything you would expect
in a script engine such as variables, script-defined functions, arrays and more. Furthermore, Extensions and Plug-ins can
easily extend the script language with more functions.
There are, however, some restrictions when writing MultiScripts. The MultiScript Engine is a line-by-line engine, meaning
it executes the script one line at the time, so commands cannot be split across multiple lines.
Also it does not prioritize operators, therefore "2 + 4 * 8" will result in 48 and not 34. However it does support parentheses
so operations can be prioritized. To achieve the expected result of 34 in the previous example, you would re-write it as "2 +
( 4 * 8 )".
MultiScript Examples
The MC.Run line is a Custom Command and does not know what variables are. So the $file variable is enclosed in { } and
translated before the line is executed by the Custom Command Engine.
Since Custom Commands are simple commands, they do not return results and from MultiScript there is no way to know if
a Custom Command was successful or not.
If the success or failure status is required then use the low-level functions provided by MultiScript.
By enabling this option you can store the script in an external file.
Import / Export
Import will let you open a file and load the content of that file into the editor.
Export will let you save your script into an external file.
Language Syntax
The MultiScript script engine is a line-by-line engine, meaning that every script command must be on a single line. A
command cannot be split across multiple lines.
Every script command should end with ";". (This is not strictly required yet, but will be in the future. at that time it will
then be possible to split commands over multiple lines.)
New scope is declared with { } and is used for conditions, loops, functions and classes.
Example:
$len = StrLen($str);
if( $len > 10 )
{
$str = "Too long";
}
Lines starting with // or # are handled as comment lines and are ignored.
Comments are not allowed to be on the same line as valid code.
$len = StrLen($str); // Get string length (Comments and code on the same line are
not allowed)
The script engine evaluates expressions from left to right, but parentheses are evaluated first. Because of this, parentheses
must be used if multiple expressions are used within a line, to guarantee that they are evaluated in the correct order.
@var $result;
// INCORRECT
$result = 10 + 5 * MyFunc_GetMultiplyFactor();
// CORRECT
$result = 10 + (5 * MyFunc_GetMultiplyFactor());
Function parameters can be variables, constants or expressions. Function parameters are evaluated before they are sent to
the function. Variables are always passed by value, meaning a copy of the variable is actually passed.
@var $result;
Reserved Keywords
The following words are reserved and cannot be used for variables or function names.
new @var
Data Types
Variables and constants can be of different data types. Valid data types are String, Number, Array, Object and Handle.
Conversions from string to number and number to string are often done automatically, making it possible to concatenate a
number variable or constant to a string.
Variables
Variables are declared with the special keyword @var. The variable name must start with a $, and can only have the
characters a-z, A-Z and 0-9 in the name. Special characters are not allowed.
@var $v1;
Variables can also be assigned a value when declaring them, either from a constant value or from a function call.
@var $v1 = 0;
@var $v2 = MyFunc();
Declaring a variable with a name that already exists is allowed as long as the variable exists in a different scope.
@var $v1 = 0;
if( $v1 == 0 )
{
@var $v1;
Arrays must be declared with a size, although you can manipulate the size later.
@var $arr[2];
Arrays can also be declared with values. In this case the size is implicit.
Constants
Variables can be declared using number and string constants. Functions can also return constant arrays.
@var $v1 = 2;
@var $v2 = "string";
if($v2 == "string")
{
...
Escape Sequences
To be able to type constant strings containing special characters such as the newline character, double quotation mark,
tab, etc., they need to be written in a special way, using an escape sequence.
An escape sequence consists of a backslash (\) followed by a letter. Each escape sequence is regarded as a single
character.
\n Newline
\r Carriage return
\t Tab
\\ Backslash (\)
If you want an actual backslash in your constant string you need to write "\\". This will translate into "\".
$var = "C:\\Temp\\MyFolder\\File.txt";
Escape sequences are only translated inside string constants enclosed in double quotes. Using single quoted strings will
not translate escape sequences. Using single quoted strings may make the code more readable, but some characters like
newline and single (or double) quotes cannot be used inside these strings.
$var = 'C:\Temp\MyFolder\File.txt';
Arrays
Arrays can hold multiple values. The values can be Strings, Numbers, Handles or other arrays.
The index operator ( [ ] ) is used to access array items. It can be used to get or to set values.
If using it to set a value you must be sure that you are not trying to set an item outside the bounds of the array.
When accessing array items the index value is 0-based. Thus the first item is index 0, the second is index 1. and so forth.
@var $arr[3];
$arr[0] = 2;
$arr[1] = 6;
$arr[2] = 8;
When assigning one array to another, a copy of each item in the original array is created.
@var $arr[3];
$arr[0] = 2;
$arr[1] = 6;
$arr[2] = 8;
@var $arr2;
$arr2 = $arr;
Array Functions
There are several built-in array functions.
Read more about array functions
arrayRemove($arr, 0);
$count = arrayCount($arr);
// $count is now 2 and item "item1" has been removed
Operators
The usual arithmetic operators (+, -, *, /) are supported.
Since the script engine does not do any operator prioritization, parentheses must be used if multiple operators are used on
one line to guarantee that they are evaluated correctly. On number values, mathematical operations are used. The +
operator for two strings will concatenate the right string with the left.
@var $result;
$result = 5 + 4 * 2;
// $result is now 18
$result = 5 + (4 * 2);
// $result is now 13
Index Operators
The index operator ( [ ] ) is supported for both Arrays and strings. On Arrays it is used to get/set an array item. On strings
it is used to get/set a character in the string.
$str = "abcdef";
@var $str2 = "12345";
$str[1] = $str2[3];
// $str is now "a4cdef";
Assignment Operators
The assignment operators (=, +=, -=) are used to assign the left side from the result of the expression to the right side.
@var $val = 1;
$val = 5;
// += is increment
$val += 2;
// $val is now 7
// -= is decrement
$val -= 2;
// $val is now 5
Comparison Operators
Comparison operators are used to compare two values. The result of a comparison operator is 0 for false or 1 for true. The
following comparison operators are supported: == (equal), > (greater than), < (less than), >= (greater than or equal), <=
(less than or equal)
@var $val = 3;
$val = $val > 2;
// $val is now 1
$val = 4;
if( $val >= 4 )
{
...
}
Negation Operators
The negation operator (!) is used to negate a true/false value. The result of a negation is either 0 or 1.
@var $val = 1;
if( !$val )
{
// if $val is false
...
}
@var $path;
$path = "C:\\Path";
$path = $path + "MyFile.txt";
// $Path is now "C:\PathMyFile.txt"
$path = "C:\\Path";
$path = $path ^ "MyFile.txt";
// $Path is now "C:\Path\MyFile.txt"
$path = "C:\\Path\\";
$path = $path ^ "\\MyFile.txt";
// $Path is now "C:\Path\MyFile.txt"
IF - Condition
The IF condition will evaluate its test expression. If the expression is greater than or equal to 1 (true) then it will execute
the scope after the if statement. If it is less then 1 (false) it it will jump over the scope or go to the else statement if
present.
New variables created inside the IF scope will only exist within that scope. New scope variables can be named the same as
variables in the outer scope (but this is not best practice).
@var $v = 2;
@var $s = 1;
if($v == 2)
{
// Local scope variable
@var $s = 10;
$v = 1;
}
else if( $v >= 3)
{
$v = 3;
}
else
{
$v = 4;
}
if( MyFync($v) )
{
$v = 6;
}
FOR - Loops
A FOR loop statement has 3 expressions that are evaluated.
The Init Expression is evaluated once, before any other element of the for loop.
The condition expression is evaluated and tested each time it is about to enter the for scope.
The loop expression is evaluated each time it has ended a scope execution of the for loop.
The Initialization variable in the init-expression must be declared outside the for loop.
A for loop terminates when the condition expression evaluates to 0 (false), or a break or return statement is executed
within the loop. A continue statement in a for loop terminates only the current iteration.
@var $n;
for( $n = 0; $n < 5; $n++ )
{
if($n == 2)
{
continue;
}
if($n == 4)
{
// break out of the loop
break;
}
}
WHILE - Loops
A While loop has 1 expression that is evaluated every time through the loop until it is 0 (false).
while( <expression> )
{
<statement>
}
A while loop can terminate when a break, or return within the statement body is executed. Use continue to terminate
the current iteration without exiting the while loop. Continue passes control to the next iteration of the while loop.
@var $n = 10;
while( $n > 0 )
{
$n--;
}
@var $success = 1;
while( $success )
{
$success = MyFunc_DoWork();
}
Functions
With the function keyword it is possible to define a function that is called by the script.
The function must be defined before it is called. Therefore it is recommended to define all the script functions first in the
script.
Functions support arguments. Parameters sent to a function will be passed by value, meaning they are passed as copies. If
a variable passed as a parameter to a function is changed within the function, the original variable is not changed.
The function will return when it reaches the end of the function definition. It will by default always return 1 in this case. If
some other return value from the function is wanted then a return statement must be used.
@var $n = 0;
$n = MyFunc( 2, 6 );
The return statement can also be used to exit from the function before it reaches the end.
return $result;
}
@var $n = 0;
$n = MyFunc( 4, 8 );
Classes
With the class keyword it is possible to define a class. A class is a group of variables and functions that are collected
together within an object. Objects in MultiScript are very simple variations of the "object" you find in languages like C++,
but without the support for public/private. Everything is public here.
A class is created from a definition using the new keyword. This will create a new instance of a class.
To access a function or variable in an object a dot (".") is used to as separator between the object variable and the class
variable name or function name.
When referring to a variable in an object variable the $ of the class variable is not written.
// INCORRECT
@var $n = $obj.$a;
// CORRECT
@var $n = $obj.a;
class MyClass
{
@var $a = 0;
@var $b = 1;
See Also
Array Functions
String Functions
See also
SaveArray
LoadArray
Initialize Array
You can initialize an array when it is declared.
Parameters
<str>|<num>
String or Number values to insert into the array
Return value
An array with values inserted into it
Example
arrayCount
Count the items in an array.
Parameters
input
Array to count items in
Return value
The number of items that are currently in the array
Example
See 'Initialize Array', above
arrayAdd
Add an item to an array.
Parameters
input
Array to add value into
value
String or Number value that should be added to the array
Return value
Nothing
arrayRemove
Remove an item from an array.
Parameters
input
Array to remove item from
index
The position in the array from which to remove the item, beginning at index 0
Return value
Nothing
arrayFind
Search an array for a string value (case-sensitive).
Parameters
input
Array to be searched for the string
string
The string item to look for
Return value
Index position of the found string, or -1 if the string is not found
arrayIFind
Find a string value in an array, ignoring case differences.
Parameters
input
Array to be searched for the string
string
The string item to look for
Return value
Index position of the found string, or -1 if string is not found
ArraySort
Sort the items in an array.
Parameters
arr
Array that should be sorted
Return value
A new array that is sorted
Example
ArrayToString
Join all string in an array to a string.
Parameters
arr
Array with strings
delimiter
What delimiter to use between the string, Eg " , " if you want space then comma then a space
aescaper
Set to 1 if you want all the string to have " around them. like if they are paths.
Return value
A string
Example
StrLines2Array
Transform a string with multiple lines into an array.
Parameters
input
Multi-line string (all forms of newline are supported)
Return value
An array where the strings in input have been split at the line breaks
StrLinesArray2String
Transform an array of strings into a multi-line string.
Parameters
input
Array of strings
eol (Optional)
what kind of line break to use:
0 = CRLF (Windows) (this is the default if none is specified)
1 = LF (Linux)
2 = CR (Mac)
Return value
A multi-line string where the strings in the array input have been appended together with line breaks inserted between
the strings; the line break type is determined by the eol value
Example
StrTokenize2Array
Tokenize a string into an array, splitting it at specified delimiters.
Parameters
input
String to tokenize
delimiter
Characters at which to split the string
Return value
An array of strings based on the string input after it is split. It is split wherever there are characters that match those in
delimiter. The delimiter character(s) will not appear in the new array (ie., they will be lost)
operator [ ]
Index operator for setting or getting a value from an array.
Parameters
[<num>]
The index position to set or get a value, beginning at index 0
Return value
The item at the selected index position
Example
StrRFind Return the position of a substring using reverse find (back-to-front search).
Return a string that has been trimmed of unwanted characters both at the beginning and
StrTrim
end.
StrTrimLeft Return a string that has been trimmed of unwanted characters from the left.
StrTrimRight Return a string that has been trimmed of unwanted characters from the right.
StrIsRegExpMatchNoCase Return 1 if two strings match using regular expressions, ignoring case difference.
StrRegExpReplace Find a substring using a regular expression and replace it using regexp.
See also
SaveStringToFile
LoadStringFromFile
StrLen
Return the length of a string.
Parameters
string
A string to get the length of
Return Value
The number of characters in string
Example
StrSub
Return a substring beginning at a specified location and having a specified length
Parameters
input
A string from which the substring is extracted
offset
Initial position to begin the search (starting with 0)
length
The number of characters to include in the returned substring, or -1 to include all characters through to the end of
the string input
Return Value
A string that is the substring of input beginning at the specified location
StrFind
Find the position of a substring in a string (case-sensitive).
Parameters
input
The string to be searched
find
The string to be found
offset
Initial position to begin the search (starting with 0)
Return Value
The position in the input string in which the search string find is found (the first character position is 0), or -1 if find is
not found
StrRFind
Find the position of a substring in a string, searching the string in reverse (case-sensitive).
Parameters
input
The string to be searched
find
The string to be found
Return Value
The position in the input string in which the search string find is found (the first character position is 0), or -1 if find is
not found
StrReplace
Replace a substring within a string (case-sensitive).
Parameters
input
A string within which to replace the substring
find
The substring to be replaced
with
The string that the substring find should to be replaced with
Return Value
The string input with the substring find replaced by the string with
Example
StrReplaceChars
Replace a any specified character with one new character (case-sensitive).
Parameters
input
A string within which to replace the substring
find
A string of character to find
with
The character that any of the found characters should be replaced with
Return Value
The string input with the characters replaced, If any. If no characters was replace the string is returned unmodified
Example
StrReplaceCharsPairs
Replace a any specified character with a matching characters (case-sensitive).
the find and with parameter must be same in length. Ex character 2 in "find" will when found be replaced with
character 2 from "with"
Parameters
input
A string within which to replace the substring
find
A string of character to find
with
The string of characters to replace a found character with
Return Value
The string input with the characters replaced, If any. If no characters was replace the string is returned unmodified
Example
StrToUpper
Transform a string into all uppercase characters.
Parameters
input
A string that should be transformed
Return Value
An uppercase version of the string input
StrToLower
Transform a string into all lowercase characters.
Parameters
input
A string that should be transformed
Return Value
A lowercase version of the string input
StrTrim
Remove unwanted characters from both the left and right side of a string (case-sensitive).
Parameters
input
A string that should be trimmed
trimchars
A string specifying all characters to be removed
Return Value
A string where all characters in trimchars have been removed from both the left side (beginning) and the right side
(end) of the string input
StrTrimLeft
Remove unwanted characters from the left side of a string (case-sensitive).
Parameters
input
A string that should be trimmed
trimchars
A string specifying all characters to be removed
Return Value
A string in which all characters in trimchars have been removed from the left side (beginning)
StrTrimRight
Remove unwanted characters from the right side of a string (case-sensitive).
Parameters
input
A string that should be trimmed
trimchars
A string specifying all characters to be removed
Return Value
A string in which all characters in trimchars have been removed from the right side (end)
StrSplit
Split a string into an array of strings (case-sensitive).
Parameters
input
A string that should be split
delimiter
A string containing the character(s) that will be used as a delimiter
Return Value
The string input split into multiple strings in an array of type string. The string is split wherever the character(s) in the
string delimiter are located
If the characters in delimiter are not found, the original string input is returned
StrCompareNoCase
Compare two strings, ignoring case differences.
Parameters
string1
First string to compare
string2
Second string to compare
Return Value
A number showing the differences between the strings string1 and string2. The return value indicates the lexicographic
relation of string1 to string2
Operator ==
Compare two strings (case-sensitive).
Parameters
string1
First string to compare
string2
Second string to compare
Return Value
1 if the string are the same, and 0 if the are different.
Example
StrIsEqual
Check whether two strings are equal (case-sensitive).
Parameters
string1
First string to compare
string2
Second string to compare
Return Value
A value of 1 if string1 is equal to string2, 0 if the strings are not identical
StrIsEqualNoCase
Check whether two strings are Equal, ignoring case differences.
Parameters
string1
First string to compare
string2
Second string to compare
Return Value
A value of 1 if string1 is equal to string2, 0 if the strings are not identical (ignoring case)
StrIsWildMatch
Check if a string matches a wildcard criterion (case-sensitive).
Wildcard is a string containing "*" (for anything) and "?" (for any single character).
Parameters
input
A string to check
wildcard
A wildcard string to check against
Return Value
1 if wildcard matches the string input, 0 if no match is found
Examples
StrIsWildMatchNoCase
Check if a string matches wildcard criteria, ignoring case differences.
Wildcard is a string containing "*" (for anything) and "?" (for any single character).
Parameters
input
A string to check
wildcard
A wildcard string to check against
Return Value
1 if wildcard matches the string input, 0 if no match is found
StrIsRegExpMatch
Check if a string matches a regular expression (case-sensitive).
Parameters
input
A string to check
regexp
A regular expression to check against
Return Value
1 if the regular expression regexp matches the string input, 0 if no match is found
StrIsRegExpMatchNoCase
Check if a string matches a regular expression, ignoring case differences.
Parameters
input
A string to check
regexp
A regular expression to check against
Return Value
1 if the regular expression regexp matches the string input, 0 if no match is found
StrRegExpFind
Find a substring using a regular expression.
Parameters
input
String to find a substring in
regexp
Regular expression to find the substring
Return Value
Position in the string input where a match was found, or -1 if no match is found
Example
The RowList functions are special functions to make it easier to work with text lists.
Example
Suppose the content of the file "d:\temp\list.txt" looks like the following:
This script will load that file into a rowlist and then get each column item one-by-one.
RowList Functions
RowListLoad Load a rowlist
RowListLoad
Load a file as a rowlist.
Parameters
filename
File to load as a rowlist
delimiter
Columns are split using this character.
Return value
A handle to a rowlist, or 0 if the load failed.
RowListClose
Close a rowlist
<num> RowListClose(<handle>);
Parameters
handle
Handle to a rowlist
Return value
1 for success, 0 for failure.
RowListCount
Count the number of rows in a list
<num> RowListCount(<handle>);
Parameters
handle
Handle to a rowlist
Return value
The number of rows in the list.
RowListColumnCount
Count the number of columns in a list.
<num> RowListColumnCount(<handle>);
Parameters
handle
Handle to a rowlist
Return value
The number of columns in the list.
RowListArray
Get a row from a list as an array
Parameters
handle
Handle to a rowlist
row
Index of the row to return as an array.
Return value
An array with all the columns of the specified row.
RowListItem
Get a single item from a list.
Parameters
handle
Handle to a rowlist
row
Row index
col
Column index
Return value
The value of the specified column in the specified row.
ReplaceTagsInString
Replace tags in a string with values from a rowlist
Parameters
tagString
A string with tag that should be replace with values from the rowlist
tag
The tags used in tagString
rowlist
Handle to a rowlist
rowIdx
Index of what row to use when replacing values in string
Return value
A string with tags replaced with values from the rowlist
Example
Related
GetFileTime / SetFileTime
GetTime
Get the current date and time.
Parameters
getUTCTime
(Optional, default: 0)
If 1, the time will be UTC else it will be local time. If not set, local time is used
Return Value
The number of seconds since 1-Jan-1970 00:00:00
Example
FormatDate
Format a number to its date value.
Parameters
format
Date formatting string
datevalue
The number of seconds since 1-Jan-1970 00:00:00
Notes
See Date Formatting to see how to format dates
Return Value
A formatted date string
Example
FormatTime
Format a number to its time value.
Parameters
format
Time formatting string
timevalue
The number of seconds since 1-Jan-1970 00:00:00
Notes
See Time Formatting to see how to format times
Return Value
A formatted time string
Example
TimeLocal2UTC
Convert a time value from local to UTC.
Parameters
timevalue
The number of seconds since 1-Jan-1970 00:00:00
Return Value
A time value converted to UTC
Example
TimeUTC2Local
Convert a UTC time value to local time
Parameters
timevalue
The number of seconds since 1-Jan-1970 00:00:00
Return Value
A time value converted from UTC to local
Example
ParseDateTime
Convert a Date/Time string to a time value
Parameters
strDateTime
A Date/Time as a string
format
A Date/Time formatting string
Return Value
A Date/Time string converted to a numeric value
Formatting information is available here: http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html
Example
GetFSLinkType Get what link type a link is (Symbolic link, Shortcut, hardlink, Junction).
Filesystem Matching
File Attributes
Filesystem Operations
Filesystem Filtering
GetFileTime
Get the date/time of a file or folder.
Parameters
path
Path to the file/folder of interest
utctime
(Optional, default: 0)
0 = Return time in local time 1 = Return time in UTC
filetimepart
(Optional, default: 0)
0 = Last Write time
1 = Create time
2 = Last Access time
Return value
0 for failure, else the number of seconds since 1970-01-01 00:00:00
Example
// Change the time of the file item in focus to 1h previous ( 3600 sec )
@var $time = 0;
@var $file = GetSourceFocusPath();
if( StrLen( $file ) > 0 )
{
$time = GetFileTime( $file );
$time = $time - 3600;
SetFileTime( $file, $time );
}
SetFileTime
Set the date/time of a file or folder.
<num> SetFileTime( <str> path, <num> time, [<num> utctime], [<num> filetimepart]
);
Parameters
path
Path to the file/folder of interest
time
Time in seconds since 1970-01-01 00:00:00
utctime
(Optional, default: 0)
0 = Return time in local time
1 = Return time in UTC
filetimepart
(Optional, default: 0)
0 = Last Write time
1 = Create time
2 = Last Access time
4 = Last Write, Create and Last Access
Return value
1 for success, else 0
Example
// See GetFileTime
IsFolder
Return 1 if the specified path is a folder.
Parameters
path
Path to a file or folder to be checked
Return value
1 if the path exists and is a folder, else 0
Example
FileExists
Return a value > 0 if the specified file exists.
Parameters
path
Path to a file be checked
Return value
1 if the path exists and is a file, 2 if the path exists and is a folder, 0 if the path does not exist
Example
GetFileSize
Return the size of the file.
Parameters
path
Path to a file or folder to be checked
Return value
The file size in bytes, or 0 if the item is not a file or does not exist
Example
GetFileProp
Return a file property of a file.
Parameters
path
Path to the file or folder of interest
fileProp
File property name (eg. "MCAudioProp.genre")
Return value
A string containing the file property
Example
Notes
See the File Property List for a list of all the available file properties.
(These are the same file properties as are used by the MultiRename tool.)
GetFSLinkType
Get what link type a link is.
Parameters
path
Path to the file or folder of interest
Return value
0 - Not a link
1 - Junction
2 - Symlink
3 - MountPoint
Example
GetFSLinkTarget
Get the target path of a file system link..
Parameters
path
Path to the file or folder of interest
Return value
The path of the linktarget.
Example
GetWinShortcutTarget
Get the target path of a shortcut (.lnk).
Parameters
path
Path to the file or folder of interest
Return value
The path of the shortcut.
Example
FindFirstFile
Return the first matching file name (this function also exists as "_findfirstfile" ).
Parameters
path
Path with filter. eg. "c:\\myfolder\\*.txt"
nameOnly
Optional. If 1, return only the name and extension; no path
dbgInfo (Optional)
If 1, output extra debugging information to the log window
Return value
Full file path to the first matching file
Example
FindFiles
Return array of matching files (this function also exists as "_findfiles" ).
Parameters
path
Path with filter. eg. "c:\\myfolder\\*.txt"
namesOnly
Optional. If 1, return only the names and extensions; no paths
dbgInfo
Optional. If 1, output extra debugging information to the log window
Return value
An array of full file paths of matching files
Example
GetFileAttributes
Return a string of file attributes.
Parameters
path
Path of the file or folder to get attributes for
Return value
A string containing the attribute characters for the file or folder.
A - Archive
R - Read only
S - System
H - Hidden
Example
AddFileAttributes
Set an attribute for a file or folder.
Parameters
path
Path of the file or folder to get attributes for
attributes
A string containing the attributes to add. Valid attributes are: a, r, s, h
Return value
1 if attributes was set, else 0.
Example
RemoveFileAttributes
Remove attributes from a file or folder.
Parameters
path
File or Folder to remove attribute from
attributes
A string containing the attributes to remove. Valid attributes are: a, r, s, h
Return value
1 if attributes was set, else 0.
Example
SetFileAttributes
Set attributes for a file or folder, replacing existing attributes.
Parameters
path
File or Folder to set attribute for
attributes
A string containing the attributes to add. Valid attributes are: a, r, s, h
Return value
1 if attributes was set, else 0.
Example
HasFileAttributes
Check if a file or folder has particular attributes.
Parameters
path
File or Folder to check attributes for
attributes
A string containing the attributes to check for. Valid attributes are: a, r, s, h
Return value
1 if the file or folder has the requested attributes, else 0. -1 for error
Example
CopyFile
Copy a single file or folder.
Parameters
targetPath
Target Path to where the file/folder should be copied
sourceFile
Source Path of the file/folder to copy
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"NOWAIT" - Script will continue directly. Will not wait until copy is completed
"NOPROGRESS" - Show no progress window. No error dialog will be shown. It will always skip files on error
"NODIALOG" - Show no confirmation dialog
"SILENT" - Silent. Do not ask what to do: skip on errors and continue
"NEWQUEUE" - If a file operation already exists. Start a new queue (override default setting)
"USEEXISTINGQUEUE" - If a queued file operation already exists then use its queue (override default setting)
"OVERWRITE_ALL" - If a file already exists on the target path, overwrite it without asking
"OVERWRITE_IFNEWER" - Overwrite existing if date of the new file is newer
"OVERWRITE_IFSIZEDIFF" - Overwrite existing if size if different
"OVERWRITE_IFSIZELARGER" - Overwrite existing if size is larger
"OVERWRITE_IFSIZESMALLER" - Overwrite existing if size is smaller
"OVERWRITE_AUTORENAME_EXISTING" - Keep both - Autorename existing file
"OVERWRITE_AUTORENAME_NEW" - Keep both- Autorename the new file
** Multiple OVERWRITE_xxx flags are NOT allowed
Return value
0 for failure, 1 for success
Example
MoveFile
Move a single file or folder.
Parameters
targetPath
Target Path to where the file/folder should be moved
sourceFile
Source Path of the file/folder to move
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"NOWAIT" - Script will continue directly. Will not wait until copy is completed
"NOPROGRESS" - Show no progress window. No error dialog will be shown. It will always skip files on error
"NODIALOG" - Show no confirmation dialog
"SILENT" - Silent. Do not ask what to do: skip on errors and continue
"NEWQUEUE" - If a file operation already exists. Start a new queue (override default setting)
"USEEXISTINGQUEUE" - If a queued file operation already exists then use its queue (override default setting)
"OVERWRITE_ALL" - If a file already exists on the target path, overwrite it without asking
"OVERWRITE_IFNEWER" - Overwrite existing if date of the new file is newer
"OVERWRITE_IFSIZEDIFF" - Overwrite existing if size if different
"OVERWRITE_IFSIZELARGER" - Overwrite existing if size is larger
"OVERWRITE_IFSIZESMALLER" - Overwrite existing if size is smaller
"OVERWRITE_AUTORENAME_EXISTING" - Keep both - Autorename existing file
"OVERWRITE_AUTORENAME_NEW" - Keep both- Autorename the new file
** Multiple OVERWRITE_xxx flags are NOT allowed
Return value
0 for failure, 1 for success
Example
RenameFile
Rename a file or folder using the Multi Commander virtual filesystem.
Parameters
filepath
Full path of the file to rename (eg. "C:\\temp\\myfile.txt")
Newname
The new file name. ONLY THE NAME. No path parts may be included
Options
Optional parameter (case-sensitive). Separate multiple options with commas.
"SILENT" - Show no error dialog. If any error occurs then abort and return then error code
"RENAME_RO" - Allow renaming of a file with readonly attribute (as long as the file system allows it)
"RENAMNE_OVR" - If a file with the new name already exists, overwrite it
Return value
1 if rename succeeded, else error code.
Example
UnpackFile
Unpack an archive using the file operations in Multi Commander.
Parameters
fileToUnpack
Full path to the file you want to unpack (eg. "C:\\temp\\myfile.zip")
targetFolder
Path to where you want the files to be unpack into (eg. "C:\\temp\\")
filter
Wildcard filter used to match files to unpack. Empty or *.* to unpack all
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"SILENT" - Show no error dialog. If any error occurs then abort and return then error code
"NOWAIT" - Script will continue directly. Will not wait until copy is completed
"NOPROGRESS" - Show no progress window. No error dialog will be shown. It will always skip files on error
"OVERWRITEALL" - If a file already exists on the target path, overwrite it without asking
"NOQUEUE" - If a file operation already exists. Start a new queue (override default setting)
"USEEXISTINGQUEUE" - If a queued file operation already exists then use its queue (override default setting)
Password
Optional parameter. Sets the password needed to unpack the archive, if archive is password protected
Return value
1 if unpacking succeeded, else error code
Example
PackFile
Pack files and/or folders into a archive (zip,7z,..) using the Multi Commander file operations.
<num> PackFile( <str> targetFile, <str> sourceFile, <str> filter, <str> method,
<str> options, <str> password );
Parameters
targetFile
Full path to the file to create (eg. "C:\\temp\\myfile.zip")
sourceFile
Full path to file or folder to pack
filter
Wildcard filter to use when adding files to archive
method
compression profile to use or default method for that type (eg. "zip" )
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"SILENT" - Show no error dialog. If any error occurs then abort and return then error code
"NOWAIT" - Script will continue directly. Will not wait until copy is completed
"NOPROGRESS" - Show no progress window. No error dialog will be shown. It will always skip files on error
"OVERWRITEALL" - If a file already exists on the target path, overwrite it without asking
"NOQUEUE" - If a file operation already exists. Start a new queue (override default setting)
"USEEXISTINGQUEUE" - If a file operation already exists then use it (override default setting)
Password
Optional parameter. Password you want to set for the archive if you want to protect it
Return value
1 if packing succeeded, else error code
Example
DeleteFile
Delete a single file using the Multi Commander virtual filesystem.
Parameters
filename
file or folder to delete
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"RECYLE" - Delete to recycle bin
"NOPROGRESS" - Show no progress window
"NODIALOG" - Show no confirmation dialog
"SILENT" - Show no error dialog if delete fails
Return value
0 for failure, 1 for success
Example
DeleteFiles
Delete multiple files using the Multi Commander virtual filesystem.
Parameters
filenames
array of files or folders to delete
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"RECYLE" - Delete to recycle bin
"NOPROGRESS" - Show no progress window
"NODIALOG" - Show no confirmation dialog
"SILENT" - Show no error dialog if delete fails
Return value
0 for failure, 1 for success
Example
MakeDir
Create a new folder using the Multi Commanders virtual filesystem.
Parameters
filename
Full path to folder to create. Can also be any virtual path like WPD:\ REG:\ FTP:\ or inside zips or 7z
options
Optional parameter (case-sensitive). Separate multiple options with commas.
"LOCAL" - Hint to the virtual filesystem that the path is a normal local path
"RECURSIVE" - Create folders recursively. Only work if LOCAL also is specified
Return value
0 for success, else error code
Example
FilterCreate
Create a handle to a filter. This handle will reference all filter rules added with FilterAddRule (see below).
<handle> FilterCreate();
Parameters
None
Return value
Return a handle to a filter
Example
FilterAddRule
Add a Rule to filter.
Parameters
filter
Handle to a filter created by FilterCreate()
field to match
The field to do the match against:
fullname
ext
namepart
size
date
attribute
filecontent
extendedproperty
Match Type
The type of matching the rule should attempt.
is (if field is a text or number, eg. filename or size)
lessthan (if field is number, eg. size)
morethan (if field is number, eg. size)
wildcard (if field is of text type)
contains (if field is of text type)
beginwith (if field is of text typ )
endwith (if field is of text type)
before (if field is of date type)
after (if field is of date type)
has (if field is of attribute type)
hasnot (if field is of attribute type)
regex (if field is of text type)
hex (if field is of filecontent type)
Value
The value that the filter should match against
Invert
Optional parameter. If set to 1 the result will be inverted
Return value
1 if filter rule was added, else 0
Example
FilterLoad
Load a filter from a file.
Parameters
filename
Full path to the file with a filter
Return value
Handle to a filter
Example
FilterLoadById
Load a filter from an existing advanced filter.
Parameters
FilterID
GUID of a existing filter id
Return value
Handle to a filter
Example
FilterSave
Save a filter to a file.
Parameters
filename
Full file path to the file to save
Return value
1 if successful else 0
Example
FilterIsMatch
Check if a file is a match against a filter.
Parameters
filter
Handle to a filter
filepath
Full path of a file to check the filter against
Return value
1 if file is a match, else 0
Example
PathGetPathPart
Get the path part of a full filename path.
Parameters
path
Full file/folder path
stripEndingSlash
Optional parameter. If 1, then the trailing backslash of the path will be removed
Return value
The path part of a full file/folder path
Example
PathGetNamePart
Get the name path of a filename path.
Parameters
path
Full file/folder path
stripExtension
Optional parameter. If 1, the file extension will be removed
Return value
The name part of a full file/folder path
Example
PathGetFileExtPart
Get the file extension from a filename path.
Parameters
path
Full file/folder path
stripDot
Optional parameter. If 1, the dot in the file extension will be removed
Return value
The file extension of a filename path
Example
PathGetParts
Get an array of all the file path parts.
Parameters
path
Full file/folder path
Return value
Return an array of all the filename part.
Array item 0 = Device
Array item 1 = Path
Array item 2 = Filename
Example
PathMakeRelativeMC
Convert a path to be relative to where Multi Commander is started from.
Parameters
path
Path to convert
Return value
The converted path
Example
// MC is installed in "C:\Program\MultiCommander"
@var $path = PathMakeRelativeMC( "C:\\temp\\MyFile.txt" );
// $path == "..\Temp\MyFile.txt"
PathMakeAbsoluteMC
Convert a relative path to absolute (relative to where Multi Commander is started from).
Parameters
path
Path to convert
Return value
The converted path
Example
// MC is installed in "C:\Program\MultiCommander"
@var $path = PathMakeAbsoluteMC( "..\\temp\\MyFile.txt" );
// $path == "C:\Temp\MyFile.txt"
PathTranslatePath
Convert a relative path to absolute and also convert environmental tags.
Parameters
path
Path to convert
Return value
The converted path
Example
NetWGet
Download web content and save it as a file.
Parameters
SaveAsPath
Full path to where the file should be saved
Url
URL of the web content to save
options
Optional parameter (case-sensitive). Separate multiple options with commas.
OVERWRITE - Overwrite target file if it already exists
VERIFY_SSLCERT - Require valid SSL Certificate
Headers
An array of "Key=Value" strings that should be added to the Http Request header
Return value
Number of bytes downloaded and written to the file SaveAsPath
Example
Where regRoot is required as a parameter use any of the specified short paths
HKLM HKEY_LOCAL_MACHINE
HKCU HKEY_CURRENT_USER
HKCR HKEY_CLASS_ROOT
HKUR HKEY_USER
RegKeyExists
Check if a registry key exists.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path of the key to check.
Return value
1 if the key exists, else 0.
Example
$exists = RegKeyExists("HKLM","Software\\Microsoft");
RegKeyAdd
Add a new registry key.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path of the key to add.
Return value
1 if key was added, 0 if failed to add key.
Example
RegKeyDel
Delete a registry key.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path of the key to delete.
Return value
1 if key was deleted, 0 if failed to delete key.
Example
RegKeyFind
Get all matching subkeys in a specified registry path. Match keys using wildcards.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path of where you want to find a key.
match
Wildcard for matching key, e.g. "Version_5.*"
Return value
An array with all matching key names.
Example
RegKeyFindRegExp
Get all matching subkeys in a specified registry path. Match key using regular expression.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path where you want to find a key.
regExp
Regular expression used for matching keys.
Return value
An array with all matching key names.
Example
RegValueExists
Check if a registry value exists.
Parameters
regRoot
Registry root, e.g."HKLM".
regPath
The registry path to the key that should have the value.
valueName
Name of the value to check for.
Return value
1 if value exists. 0 if it does not.
Example
RegValueAdd
Add a new registry value.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path to the key that the value should be created under.
valueName
Name of the registry value to create.
value
Value to set the registry value to.
type
Type of registry value to create. REG_SZ or REG_DWORD supported.
Return value
Name of the newly-added value.
RegValueDel
Delete registry value.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
The registry path to the key that should have the value.
valueName
Name of the value to delete.
Return value
1 if value is deleted. 0 if deletion failed.
RegValueFind
Find all matching registry values under a registry key.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path to key under where you want to search for a value.
valueMatch
Wildcard for matching value. e.g. "Version_5.*"
Return value
An array of matching registry values.
RegValueFindRegExp
Find all matching registry value under a registry key, Using regular expression for matching
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path to key under which you want to search for a value.
valueRegExpMatch
Regular expression for matching values.
Return value
An array of matching registry values.
RegValueGetSZ
Get the value of a REG_SZ registry value.
Parameters
regRoot
Registry root, e.g. "HKLM".
regPath
Registry path to key under which the value exists.
valuename
Name of the registry key value to return. (Must be a REG_SZ value).
Return value
The string value of the registry value. Returns an empty string if the value does not exist.
RegValueGetDWORD
Get the value of a REG_DWORD registry value .
Parameters
regRoot
Registry root, e.g. "HKLM"
regPath
Registry path to key under where the value exists.
valuename
Name of the registry key value to return. (Must be a REG_DWORD value)
Return value
The value of the registry DWORD value. Returns 0 if value does not exist.
Functions for getting focus/selected files and folder from source/target views.
GetSelectedFileNames Get an array of all currently selected files in the source panel.
GetSelectedPaths Get an array with full paths of all currently selected files in the source panel.
GetSourceSelectedFileNames Get an array with the names of selected items in the source panel.
GetTargetSelectedFileNames Get an array with the names of selected items in the target panel.
GetSourceSelectedPaths Get an array with the full paths of the selected items in the source panel.
GetTargetSelectedPaths Get an array with the full paths of the selected items in the target panel.
GetSourceFocusPath Get the full path of the item in focus in the source panel.
GetTargetFocusPath Get the full path of the item in focus in the target panel.
GetSourceFocusName Get the name of the item in focus in the source panel.
GetTargetFocusName Get the name of the item in focus in the target panel.
GetSourceItems Get an array with all filenames or full paths of all items in the source panel.
GetTargetItems Get an array with all filenames or full paths of all items in the target panel.
GetSelectedFileNames
Get the filenames of all selected files/folders in the source view.
<arr> GetSelectedFileNames();
Return value
An array of all the names of the selected files and folders in the source view.
Example
GetSelectedPaths
Get the complete filepaths of all selected files/folders in the source view.
<arr> GetSelectedPaths();
Return value
An array of the complete paths for all the selected files and folders in the source view.
Example
GetSourceSelectedFileNames
Get an array of the filenames of the selected items in the source view.
Parameters
flags
Return value
An array of file names (names only - not complete paths).
Example
GetTargetSelectedFileNames
Get an array of all the filenames of the selected items in the target view.
Parameters
flags
Return value
An array of file names (names only - not complete paths).
Example
GetSourceSelectedPaths
Get an array with the full paths of all selected items in the source view.
Parameters
flags
Return value
An array of full paths to files or folder.s
Example
GetTargetSelectedPaths
Get an array with the full paths of all selected items in the target view.
Parameters
flags
Return value
An array of full paths to files or folders.
Example
GetSourcePath
Get the complete path as currently shown in the source view.
<str> GetSourcePath();
Return value
A string with the complete path shown in the source view.
Example
GetTargetPath
Get the complete path as currently shown in the target view.
<str> GetTargetPath();
Return value
A string with the complete path shown in the target view.
Example
GetSourceFocusPath
Get the full path to the item in focus in the source view.
<str> GetSourceFocusPath();
Return value
A string with the full path to the item in focus
Example
GetTargetFocusPath
Get the full path to the item in focus in the target view.
<str> GetTargetFocusPath();
Return value
A string with the full path to the item in focus
Example
GetSourceFocusName
Get the name only of the item in focus in the source view.
<str> GetSourceFocusName();
Return value
A string with the name of the item in focus
Example
GetTargetFocusName
Get the name only of the item in focus in the target view.
<str> GetTargetFocusName();
Return value
A string with the name of the item in focus
Example
GetSourceItems
Get an array with all filename or fullpath of all the items in the source panel.
Parameters
fullpath
Optional. If provided and set to 1, it will return full filepaths, else only filenames are returned. If not set, 0 is assumed
Return value
An array with filename or path of all the items in the panel
Example
GetTargetItems
Get an array with all filename or full path of all the items in the target panel.
Parameters
fullpath
Optional. If provided and set to 1, it will return full filepaths, else only filenames are returned. If not set, 0 is assumed.
Return value
An array with filename or path of all the items in the panel
Example
SetSourceSelected
Set selection in the source panel
Parameters
filenames
An array of filenames. The filenames will be used to match against the existing file in the view. and matched files will be
selected.
clear
Optional. If provided and set to 1, the selections the in source view will be cleared before new selections are added
If set to 0, the new selections will be added to existing. If not set, 1 is assumed.
Return value
Number of files selected
Example
SetTargetSelected
Set selection in the target panel
Parameters
filenames
An array with strings of filename. The filename will be used to match against the existing file in the view. and matched
files will be selected
clear
Optional. If provided and set to 1, the selections in the source view will be cleared before new selections are added
If set to 0, the new selections will be added to existing. If not set, 1 is assumed.
Return value
Number of files selected
Example
TabPanel Functions
TabActivePanelSide Get an array of all currently selected files in the source panel.
TabActiveTab Get an array with full paths of all currently selected files in the source panel.
TabCount Get an array with the names of selected items in the source panel.
TabGetPath Get an array with the names of selected items in the target panel.
TabClose Get an array with the full paths of the selected items in the source panel.
TabLoadTabSession Get an array with the full paths of the selected items in the target panel.
TabActivePanelSide
Get or Set what panel side in active
<int> TabActivePanelSide();
<int> TabActivePanelSide( <int> panel );
<int> TabActivePanelSide( <string> panel );
Return value
If no parameter is specified then it return 1 or 2 for left or right panel. else it return 1 for success or 0 for failure to set
active panel
Example
TabActiveTab
Get or Set what tab in a panel is active
Return value
Return the tab index of the active tab in the specified tab panel. (first tab is 0, second 1, and so on)
If the SET alternatives are used it return 1 for success or 0 for failure to set active tab
Example
TabCount
Return how many tabs a panel side has
Return value
Return the number of tabs that exists in a panel side
Example
TabGetPath
Return the path of a tab. If the view inside that tab support that.
Return value
Return the path for the path in the specified panel. If the view in that tab does not support the concept of a 'tabpath'
empty path is returned (Eg Checksum view)
Example
TabClose
Close a specified tab
Return value
Return 1 for success or 0 for failure
Example
TabClose(1, 2);
TabClose("active", 3);
TabClose("source", 3);
TabLoadTabSession
Close a specified tab
Return value
Return 1 for success or 0 for failure
Example
TabLoadTabSession("MyTabSession);
TabLoadTabSession("46214bda3c8d4da093194ffa5c9578a6");
min Return the minimum value of many values or from an array of values.
max Return the maximum value of many values or from an array of values.
mod Modulo, Returns the remainder after a division of the provided values .
AskOption Ask the user to pick one of a list of items from a dropdown list.
Sleep
Pause the script for a specified number of milliseconds.
Parameters
mmsec
Milliseconds to wait before continuing.
Return value
Nothing.
Examples
Sleep( 10 );
min
Returns the minimum value from two or more values passed to the function.
It is also possible to pass it an array that contains multiple number values.
Parameters
val1
A number value.
val2
A number value.
arrayVal
An array with multiple number values.
Return value
The minimum values of all the values passed to the function.
Examples
max
Returns the maximum value from two or more values passed to the function.
It is also possible to pass it an array that contains multiple number values.
Parameters
val1
A number value.
val2
A number value.
arrayVal
An array with multiple number values.
Return value
The maximum values of all the values passed to the function.
Examples
mod
Modulo - Return the remainder after division of the values.
Parameters
val1
A number value.
val2
A number value.
Return value
The remainder when the first value if divided by the another.
Used when you want to know if a values is even divided by a another value. If it is the reminder is 0
Examples
GetRandomValue
Generate a random values between a min and max value.
Parameters
min
Minimum value.
max
Maximum value
seed
[OPTIONAL] Seed value for random value generator, If not specified a seed value will be generated.
Return value
A random value between the specified min and max values
Examples
Log
Log text to a log window.
Parameters
logID
ID of the logger that should receive the log text.
0 = Standard Application log
1 = File Operations Log
x = ID of user-created log
logLevel
Logging level for this log text. Logging can be set to only show info, warning or error.
10 = Info
20 = Warning
30 = Error
logText
Text that should be written to the log.
Return value
1 if message is logged, 0 if the log is not found.
Examples
LogDump
Dump the content of a variable to the log. (Useful for debugging.)
Parameters
var
Variable to dump to the log file.
Return value
Always 1.
Example
LogDumpArray
Dump the contents of an array to the log. (Useful for debugging.)
Parameters
array
Array to dump to the log file.
Return value
Always 1.
Example
LogAppInfo
Send text directly to the application log, with logging level 'Info'.
Parameters
logText
Text that should be written to the log file.
Return value
Always 1.
MessageBox
Show a messagebox.
Parameters
caption
The caption text for the messagebox.
text
The message text that should be shown.
option
One of the standard Win32 values for Button and Icon options. See MSDN here for a full list of values.
OK 0
OK + Cancel 1
Abort + Retry + Ignore 2
Yes + No + Cancel 3
Yes + No 4
Retry + Cancel 5
Return value
Possible return values and their meanings are:
AskText
Show a dialog in which the user can input text.
Parameters
label
The dialog Label text that will be shown.
inputText
Text that will be pre-loaded into the input field when the dialog is first shown (can be: "").
option
Not yet used; can be set to 0.
Return value
0 if user cancelled the dialog, else a string with the text from the dialog's input field.
AskOption
Show a dialog in which the user can pick one of a list of items from a dropdown list.
Parameters
label
The Label text that will be shown.
values
An array of strings or numbers that will be shown in the dropdown list.
selected
Index of the item in the list that should be selected by default, -1 for no default item selected.
Return value
Index of the item selected, or -1 if user pressed Cancel.
Examples
SaveArray
Save an array of strings to a file
<num> SaveArray( <str> filename, <arr> array, <num> overwrite, <num> format );
Parameters
filename
Complete file path where the file should be saved.
array
The array to save
overwrite
0 = Do not overwrite existing file, 1 = Overwrite existing file.
format
0 = ASCII
1 = UTF8
2 = Unicode
Return value
1 if array was saved successfully else 0.
LoadArray
Load a text file into an array.
Parameters
filename
Complete path to the file to load.
Return value
An array where every line in the file filename is an item in an array.
SaveStringToFile
DESC
Parameters
filename
Complete file path to where the file should be saved.
string
Content to save.
format
0 = ASCII
1 = UTF8
2 = Unicode
Return value
1 if string was saved successfully else 0.
LoadStringFromFile
Load the content of a text file into a string.
Parameters
filename
Complate file path of the file to load.
Return value
The content of the file as a string.
GetClipboardText
Get the text stored in the clipboard. If the clipboard content is not text then an empty string will be returned.
<str> GetClipboardText();
Return value
A string containing the content of the clipboard.
SetClipboardText
Store text in the global clipboard.
Return value
Nothing.
Example
GetTagValue
Expand a MultiTag.
Return value
Expanded MultiTag value.
Example
TranslateEnvString
Translate a Windows environment variable.
Return value
Expanded environmental string.
Example
Example
// upload the file d:\temp\test.zip to the current remote folder with the new name
test.zip
FTPPutFile($ftp , "d:\\temp\\test.zip" , "test.zip");
Import Directive
To be able to use any of the FS-FTP defined MultiScript functions the functions must first be imported into the MultiScript
engine. This is done with Import:
import("FSFTPScript");
FTPConnect
Connect to an FTP site that is defined in bookmarks.
Parameters
sitename
name of a site that is defined in FTP bookmarks.
Return value
A handle to an FTP site, or 0 if it fails to connect or if the sitename is not found in FTP bookmarks.
FTPChdir
Change remote directory.
Parameters
conn
Handle to an FTP connection.
path
path to a location on the remote connection.
Return value
1 if successful or 0 if it fails.
FTPMkdir
Create directory in current remote location.
Parameters
conn
Handle to an FTP connection.
directory
name of the directory to create.
Return value
1 if successful, 0 if it fails.
FTPRmdir
Remove a directory
Parameters
conn
Handle to an FTP connection.
directory
name of the directory to remove.
Return value
1 if successful, 0 if it fails.
FTPRemove
Remove a remote file
Parameters
conn
Handle to an FTP connection.
file
Name of the remote file to remove.
Return value
1 if successful, 0 if it fails.
FTPRename
Rename a remote file or folder
Parameters
conn
Handle to an FTP connection.
oldFilename
Name of the remote file to rename.
newFilename
Filename the file should be renamed to.
Return value
1 if successful, 0 if it fails.
FTPList
Get the current directory content.
Parameters
conn
Handle to an FTP connection.
Return value
1 if successful, 0 if it fails.
Remarks
The result of a List command is cached in the FTP connection. Use FTPListGet to get the content if the list items.
FTPListCount
The number of list items that are stored in the connection.
Parameters
conn
Handle to an FTP connection.
Return value
The number of items obtained in the directory listing from a previous FTPList command.
FTPListGet
Get a list item.
Parameters
conn
Handle to an FTP connection.
index
Index of the list item to get.
Return value
An array of 2 items where the first is the Name and the second is the size, or 0 if no item was found.
FTPExists
Check if a file or directory exists
Parameters
conn
Handle to an FTP connection.
file
Filename or folder name to check for.
Return value
1 if the file exists, 0 if it does not.
Remarks
An FTPList command must have been run before running this command.
FTPPutFile
Upload a file.
Parameters
conn
Handle to an FTP connection.
filepath
filepath of the file to upload.
remotefile
The name of the file to store on the FTP server.
Return value
1 if successful, 0 if it fails.
FTPGetFile
Download file.
Parameters
conn
Handle to an FTP connection.
remoteFile
Path to a remote file to download.
localfile
Path to a local filename to save the downloaded file as.
Return value
1 if successful, 0 if it fails.
FTPCommandRaw
Send a RAW FTP command.
Parameters
conn
Handle to an FTP connection.
command
RAW FTP command to send.
Return value
1 if successful, 0 if it fails.
Example
FTPQuit
Close a connection to an FTP server.
Parameters
conn
Handle to an FTP connection.
Return value
1 if successful, 0 if it fails.
Import Directive
To be able to use any of the File Checksum MultiScript functions, these functions must first be imported into the
MultiScript engine. This is done with the script directive Import:
import("MFTools-sfv");
ChkSum_Calculate
Calculate CheckSum of a file.
Parameters
filename
name of the file you want to calculate the checksum of
type
0 = CRC32, 1 = MD5, 2 = SHA1
Return value
Return a string with the hex hash value
Multi-Script Debugger
MultiScript Examples
Examples of MultiScripts
Search on Google from the command line bar
View first *.txt file found in the folder currently in focus
Play first *.avi or *.mkv in the folder currently in focus
Create the command then go to the Alias Manager and assign 'g' to "@<Unique command id>"
function CreateGoogleSearchQuery()
{
@var $query = "";
@var $n = 0;
for( $n = 0; $n < $argcount; $n = $n + 1 )
{
if( $n > 0 )
{
$query = $query + "+";
}
$query = $query + $arg($n);
}
return $query;
}
@var $s = "";
$s = "http://www.google.com/search?g=" + CreateGoogleSearchQuery();
MC.Run CMD="{$s}" SHELL
the first *.avi or *.mkv found will be played in your default movie player.
@var $file;
$file = _findfirstfile( "{focusfilepath}\\*.avi" );
if(StrIsEqual($file,""))
{
$file = _findfirstfile( "{focusfilepath}\\*.mkv" );
}
MC.Run CMD={$file} SHELL
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.
Script parameter.
${param:<num>} where <num> is the index of the ${param:0} -> "D:\MyBackup\"
parameter
All the paths below depend on how Multi Commander is installed, ie. for a Single User, Multi User, or a portable
installation.
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}"
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
MultiScript Commands
MultiTags are only supported in MultiScript on lines that are Custom Commands.
// 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.
Backup
Enter a file path for the backup file or click "..." to browse to the location where to you wish to save it; then click the
Backup button.
All configuration files for Multi Commander and all its plug-ins will be backed up into a .zip file at that location.
Restore
Enter a file path to a .zip file or click the "..." button to browse for the file that contains a backup of the configuration.
Press the Restore button to replace the current configuration with the configuration that was backed up in that file.
You need to restart Multi Commander after this for the restored configuration to fully take effect.
Select the type of user data you want to remove then click OK. After the user data is removed it is recommended to exit
Multi Commander so any new information can be stored.
MultiUpdate
MultiUpdate is a separate tool that will check whether an updated version of Multi Commander is available. If one exists,
it will be downloaded and Multi Commander will be updated.
MultiUpdate can be launched separately from the Start Menu or from the folder where it is located (by default, this is the
Multi Commander install folder) or by selecting "Launch MultiUpdate..." from the Help menu in Multi Commander.
By default Multi Commander will check if an update exists each time it starts. If an update exists it will launch
MultiUpdate.
Multi Commander must not be running when MultiUpdate tries to update it or the update process will fail: it will be
unable to replace files that are in use.
Settings
Unstable beta versions are often not fully tested and can contain experimental or unfinished features.
Checking this is normally NOT recommended.
If you want an already-running instance of Multi Commander to go to a path you can use the /OPEN parameter.
This is useful when you have an external program that should tell Multi Commander to go to a specific path or when Multi
Commander is running in Single Instance mode
[PANEL_1]
Path=D:\
Side=L
[PANEL_2]
Path=D:\Bin
Side=L
[PANEL_3]
Path=D:\Projects
Side=L
[PANEL_4]
Path=C:\Projects\Jupiter
Side=R
[PANEL_5]
Path=E:\Projects\Pluto
Side=R
Locked=1|0
AllowSubPathChange=1|0
ShowTree=1|0
SortAsc=1|0
SortCol=[column number]
TabColorText=#000000
TabColorBk=#000000
TabColorHotWhenActive=1|0
TabColorGradient=1|0
ViewMode=1|2|3|4
ViewModeListWidth=000
ViewModeDetailWidth=000
Side=L|R
Path=[Full Path]
Examples
If no "-L" or "-R" parameter is specified, the first parameter is assumed to be a path to show in the left panel, and the
second to be a path to show in the right panel.
MultiCommander.exe -F="AutoStart.ini"
MultiCommander.exe -TABSESSION="WorkWithPictures"
MultiCommander.exe -AutoRun=CmdRunStartup
MultiCommander.exe -INSTANCE=WorkWithPictures
Actions for getting information from Multi Commander will have the response to the calling program returned using
WM_COPYDATA message.
WM_COPYDATA is a special Windows message. One of the parameters to send is a pointer to a COPYDATASTRUCT
stucture. This struct is used to store all the data that should be send to Multi Commander.
The WM_COPYDATA message must be sent to the main Multi Commander Window.
This can be found by first finding the process ID of the Multi Commander.exe instance and then finding the top level
window of that instance.
An example of how to do that is the MCCopyData.h file in the samples.
When the HWND for the window has been found, use the Windows API SendMessage to send the WM_COPYDATA
message to the HWND of the windows of Multi Commander.
If requesting information that requires Multi Commander to answer back, the HWND of the windows that will recieve the
answer is also needed.
Exmple
COPYDATASTRUCT cds;
cds.dwData = CPF_GOTOPATH | CPF_SOURCE | CPF_NEWTAB;
cds.cbData = wcslen(szPath) * sizeof(wchar_t);
cds.lpData = (void*)szPath;
SendMessage(hMCHWND, WM_COPYDATA, (WPARAM)hMyHwnd, (LPARAM)(LPVOID)&cds);
CPF_GOTOPATH tells Multi Commander that the data provided is a path and this it should go to this path
CPF_SOURCE tells Multi Commander that the new path should be shown in the source panel
CPF_NEWTAB tells Multi Commander that the new path should be opened in a new tab.
Set CPF_ANSI if the path sent is ASCII/ANSI. If this is not set, Unicode (wchar_t) is assumed.
C++ Helper
Included in the Sample project there is a MCCopyData.h file. This file contains a helper class that will do most of the work
for you.
MCCopyData.Subclass(hDlg);
std::wstring path = MCCopyData.GetCurrentPathW(hDlg, CPF_SOURCE);
MCCopyData.ReleaseSubClass(hDlg);
hDlg is the HWND of the calling program. This HWND is used when Multi Commander returns the answer to the request.
MCCopyData.Subclass(hDlg);
This will hook the helper class into the message loop of the calling program and it will handle all of the WM_COPYDATA
responses sent from Multi Commander.
If your program is not a pure Win32 program or you cannot do this, you need to handle the answer of the WM_COPYDATA
yourself.
You will find an example of how to do this in the helper class.
In this example we tell Multi Commander to go to D:\MyFolder\SubFolder and that this path should be opened in a new tab
MultiCommander::MCCopyDataHelper MCCopyData;
MCCopyData.GoToPath(L"D:\\MyFolder\\SubFolder\\", CPF_SOURCE | CPF_NEWTAB, hDlg);
What To Do
If Multi Commander actually crashes a mini dump file is created and sent to our crash report system where we can
investigate why it crashed.
For a hang this is not done automatically; to be able to find out why it hung, and to be able to fix it, we need to know what
Multi Commander was doing when it hung. To do that, we need a dump of the hung 'MultiCommander.exe. process, but
you, the user, will need to create that dump and send it to us.
Start Task Manager by pressing Ctrl+Shift+Esc (or right-click on the status bar and select "Start Task Manager"), select
the Processes tab.
Find the "not responding" MultiCommander.exe process in the list, right-click it and select "Create Dump File".
When the dump file is saved you will be presented with a dialog telling you where the dump file was written.
The path in the dialog must be selected so that you can copy and paste that path into Multi Commander or Windows
Explorer to go to that location.
Compress the dump file with Zip/7-zip/Rar. The fastest way is to just right-click the file and select "Send To > Compressed
Folder".
Then upload that file to http://multicommander.com/upload and we can take a look and see what Multi Commander was
waiting for and why it hung.
If you need feedback on your submitted file, then also post a message in the forum or send us an email.
When Multi Commander crashes it will, by default, try to create a mini crash dump and send it to our crash report system.
The crash report system will then do an automatic analysis of the crash and send the result for review. If the issue needs
more investigation it will be analyzed manually.
With the crash dump we can see where in Multi Commander the crash happened and sometimes the reason why.
However, the crash dump file that is created by default has very limited information and sometimes does not have enough
for us to find out what has happened.
Shell Extensions
The most common reason for crashes is third party programs that get executed inside the Multi Commander process. This
happens often when Multi Commander is using Windows Explorer Shell Extensions for building the Context Menu ("Right-
Click" menu).
A lot of shell extensions are only tested on Windows Explorer, so when programs like Multi Commander call them, they can
crash Multi Commander because the Extension has a coding error. There is nothing Multi Commander can do about this.
One thing you as a user can do is to disable Shell Extensions one by one to find out which one is at fault. A tool to
disable/enable Shell Extensions is the free ShellExView by NirSoft
If you did something specific which triggered the crash, please send an email or leave a post in the forum letting us know
what exactly you did to trigger the crash. The more information we get the better the chance that we can fix the problem.
The crash dumps with maximum information contain all the memory addresses that the Multi Commander.exe process
used, so they can be large. But they also give us a good view on what is going on inside Multi Commander and information
about the internal state of its various components.
There is also a quicker way to toggle this setting on or off, and that is to use the toolbar button.
This will toggle the visibility of files and folders with the hidden and system attribute set.
The popup will display the current settings and allows for changing the settings, with separate options for hidden and
system attributes.
Because there are so many configuration options in Multi Commander there is no single option you can check to enable
this behaviour.
But because the mouse and keyboard are both very customizable, it is possible to configure it.
You can configure what should happen when you click with a mouse button and how things should work.
The first thing to change is what should happen when left mouse button is clicked.
Changing this to "Open Folder / Execute file" will allow a folder to be opened with single click, and a file will be run on
single click.
A potential problem is that it will be harder to select files and/or folders: normally a file or folder is selected when clicked
on.
By enabling "Automatically select file/folder when hovering over it", the item under the mouse cursor is automatically
selected.
It is thus easier to select items.
But enabling "Checkbox" under "Selection and Checking of Items", it will be easier to select multiple files and folders.
Optional
Many users like to use the single-click setup and prefer that clicking on empty space will go back to the parent item.
Right-click the column header and select "Save current layout as default".
The size of all columns will change immediately after you resize any of them. All columns will then fit into the width of the
view.
When you resize the last column, the Filename column is automatically resized to accommodate the new size of the last
column.
So when resizing all columns to fit your needs, do so from left to right but skip the filename column. This will resize to fill
whatever room is left after resizing all other columns.
If the AutoResize Column option is not enabled, columns are not automatically resized and you can create column layouts
that are wider than the width of the view.
In the latter case you will see a horizontal scrollbar.
You can manually force columns to be resized by right-clicking on column header and selecting "AutoResize columns"
When selected, a one-time AutoResize of the columns in the view will occur.
More...
Read more about how to customize columns and how to create new column layouts
Customize columns
Customize columns layouts