Today I’ll cover the new .INI directives, internal variables, and variable functions in Take Command 15.0. (You can see the full feature list for v15 in the What’s New in Version 15 section of the online help.)
TrayHotKey=T The hotkey to toggle Take Command to and from the system tray. The specified alphabetic key is combined with Ctrl + Shift, so the default hotkey is Ctrl-Shift-T.
Copyright=YES|no Display the TCC copyright message at startup. This is the same as the TCC /Q startup option, and only applies to registered copies.
EverythingSearch=yes|NO If YES, CDD will use “Everything Search” (http://www.voidtools.com) instead of JPSTREE.IDX for fuzzy directory matching. See CDD for details. Everything Search is much faster than using JPSTREE.IDX; however, it will only work for NTFS drives.
FilesCaseSensitive=yes|NO If YES, filename comparisons will be case sensitive (like Linux, and unlike Windows).
Redo=Alt-Y Key mapping directive to redo last edit (see Undo and Redo above).
Undo=Alt-Z Key mapping directive to undo last edit (see Undo and Redo above).
The password fields in TCMD.INI for the Internet settings are encrypted.
%_do_loop – Incremented each time through a DO loop.
%_tclistview – Returns the selected items in the List View window as an include list.
%_virtualbox – Returns 1 if TCC is running in a VirtualBox VM.
%@DISKFREE – Now supports the OpenAFS 1.7.x redirector to retrieve disk space usage.
%@DISKTOTAL – Now supports the OpenAFS 1.7.x redirector to retrieve disk space usage.
%@DISKUSED – Now supports the OpenAFS 1.7.x redirector to retrieve disk space usage.
%@FORMAT – If the second argument (string) doesn’t exist, @FORMAT now treats it as an empty string and pads the output accordingly.
%@LINES – Now also sets two environment variables:
_LINES_MAXLEN – The length of the longest line
_LINES_MAXLOC – The line number (base 0) of the longest line.
%@MACADDRESS – Returns the MAC address of the network interface at the specified address.
%@SELECT – Added optional start line and key mask fields. The start line will highlight the specified line number (the first line is 1).
The selected line number will be now be returned in the SELECT_LINE environment variable.
If you specify a key mask, the searching is disabled, and TCC will check input keystrokes for a match against the key mask. If a match is found, @SELECT will return the current line and set the _SELECT_KEY environment variable to the input key value. The key mask is in the same format as INKEY /K.
The format is:
%@TIME – Added (not very useful, not recommended, and then only for the USA) support for am/pm time. For example:
%@TALNUM[string] – Returns the number of alphanumeric (a-z, A-Z, and 0-9) characters in the string
%@TALPHA[string] – Returns the number of alphabetic characters (a-z, A-Z) in the string
%@TASCII[string] – Returns the number of 7-bit ASCII characters (0x00 – 0x7F) in the string
%@TCNTRL[string] – Returns the number of ASCII control characters (0x00 – 0x1F and 0x7F) in the string
%@TLOWER[string] – Returns the number of lower case alphabetic characters in the string
%@TUPPER[string] – Returns the number of upper case alphabetic characters in the string
%@TDIGIT[string] – Returns the number of decimal digits (0-9) in the string
%@TPRINT[string] – Returns the number of printable characters in the string
%@TPUNCT[string] – Returns the number of punctuation characters (printable characters which are not alphanumeric or space) in the string
%@TSPACE[string] – Returns the number of white space characters (0x09 – 0x0D or 0x20) in the string
%@TXDIGIT[string] – Returns the number of hexadecimal digits (0 – 9, A – F) in the string
Plugins can now access array variables directly through the ArrayVariables array. See TakeCmd.h in the SDK for details.
The Take Command v15.0 public beta is available at:
I have a suggestion for a new feature for TCmd:
I think, the only reason to not make the behaviour of the call-command the default behaviour (which means, you do not need to put call in front of an external command, which is implemented as a bat-file) of TCmd is compatibility with cmd.exe.
But there are very good reasons, that the behaviour of “call” should be the default behaviour: Normally you have a lot of external commands available through the PATH-variable and you call them without their .exe-,.bat- or whatever extension. You do not even need to know, what extensions they have, to use them. So you call them in your bat-file just by their names:
The problem is: you should have called “paul” through “call paul”, because paul is the only command implemeted as a bat-file, otherwise “mary” never gets a call and the band put together in our bat-file does not play together.
As you can see, it is not intuitive to understand, how the little script will work. If you call them one-by-one manually, you get the expectend behaviour, when you write them down in the same order in a bat-file, you won’t.
I think, in 2013 you can assume, that writing new bat-files does not need this behaviour of MS-DOS-style cmd.exe anymore. An I expect almost no one needs to run 15 year old bat-files today. For all others, this behaviour is hard to follow and a trap, which even experienced users of TCmd migth to drop in again and again, since not all commands you use, were implemented by your-self and you are not aware about their implementation or you even will check it before using the command.
So I suggest an option, which changes the default behaviour of TCmd: “implicit-call”. The default is false. If set to true, TCmd calls a bat-file the same way, as if it was called via the “call”-command.
I hope, you consider this and this option will make it in one of the next releases.