Take Command 19.10:

 

Take Command 19.10 is primarily an internal design update, with hundreds of improvements to the speed and memory usage of Take Command, TCC, and IDE.

 

The Debugger / IDE has several new themes (including VS 2015 light, dark, and blue).

 

Updated installer version.

 

Updated scilexer.dll version (for the Batch Debugger / IDE and Command Input window).

 

 

Take Command 19.0:

 

Installer:

 

The web help for Take Command and TCC is now fully responsive and will display correctly formatted on any desktop, laptop, tablet, or phone. The web help is also substantially faster to load than before.

 

Take Command v19.0 is using a new version of the installer engine.

 

The installer now prompts for associating BAT, BTM, and CMD files with both Take Command and TCC.

 

Uninstalling Take Command now invokes an optional (quick) uninstall survey.

 

 

Take Command:

 

Take Command v19.0 is using new versions of all of the IPWorks dll's.

 

Take Command v19.0 is using a new version of the Scintilla edit control (for the IDE / batch debugger and the Take Command Command Input window).

 

Take Command v19.0 is using a new version of textpipeengine.dll (for TPIPE).

 

Take Command v19.0 is using a new version of the Everything Search engine.

 

The display output speed in Take Command tab windows is faster.

 

The Folder View and List View windows have been replaced with a single File Explorer (Windows 7+ style) browser window. This provides a number of new features:

 

Additional layout options

Quick Access entries

Many more column options in the list view

Optional preview window

Optional details window

Additional menu options (Organize, Share with, Include Folder in Library, Burn, etc.)

Status bar with total items & items selected, and size of selected items

 

The Take Command theme now defaults to Office 2013 (instead of Office 2010).

 

Take Command now retains the view state (show or hide) of the tabbed toolbar when you exit & restart.

 

Tab toolbar buttons can now optionally specify a "Run As" user and password to execute the command as a different user.

 

The Tabs menu (and right-click context menu for tab labels) has a new "Clone" option that tells the TCC tab window to create a new tab with the same current directory and environment.

 

Edit / Paste will check to see if the Ctrl + Shift keys are down, and if so it will insert a " & " between lines of a multiline paste. Alternately, you can set AppendCommandLines=YES in your TCMD.INI and a Ctrl+paste will insert " & " instead of the default " ".

 

Edit / Copy+Paste will check to see if the Ctrl + Shift keys are down, and if so it will insert a " & " between lines of a multiline paste. Alternately, you can set AppendCommandLines=YES in your TCMD.INI and a Ctrl+Copy+Paste will insert " & " instead of the default " ".

 

The Edit menu has a new "Goto URL" option if you have selected an HTTP/HTTPS/FTP/FTPS name.

 

The right-click popup context menu has a new "Goto URL" option if you have selected an HTTP/HTTPS/FTP/FTPS name, or if there is an HTTP/HTTPS/FTP/FTPS name at the current mouse location.

 

TCMD no longer turns off the selection if you click inside the selection. You can revise a selection by clicking inside it and dragging the mouse left or right.

 

Shift-F6 will toggle between the (default) files + directories filename completion, and directories only. The default will be reset for a new command line.c

 

Ctrl+F6 will toggle between completing files found in the local directory, and completing them in the local directory + all of the directories in PATH.

 

 

TCC:

 

Added programmable tab completion, using any scripting language supported by TCC (i.e., BTM/CMD, Lua, Python, REXX, Tcl, etc.). See TABCOMPLETE for details.

 

Doubled the PUSHD / POPD directory stack size (to 16K).

 

Ctrl+Shift+V will insert a " & " between lines of a multiline paste.

 

Ctrl+Shift+X will expand (only) the variable (or variable function) at the current cursor position.

 

At startup, TCC will save the last directory in the directory history list (i.e., if you're running SHRALIAS or you've loaded the directory history in TCSTART) to the buffer used by "CD -".

 

If the first argument on a command line is in the format "env_var=value command options" (and env_var=value doesn't match an external command) then TCC will set the specified environment variable to the value, execute the command, and then remove the variable.

 

Filename completion will now be done in the order the extensions are specified. For example, "set filecompletion=myeditor:htm html css" will first try to match .htm files, then .html, and finally .css.

 

Added the "Normal" attribute for filename completion (Normal means no attributes are set).

 

TCC no longer turns off the selection if you use the left or right cursor keys (or Shift-Left, Shift-Right, Shift-Ctrl-Left, or Shift-Ctrl-Right). So selection (marking) from the keyboard (Shift-Left / Shift-Right) now allows you to go back to the selection (inside the selection or immediately before or after) and resize it with Shift-Left / Shift-Right) again.

 

You can specify a particular plugin to execute by prefixing the function / variable / command name with the plugin name and a $. See Plugins below for details.

 

The internal Lua interpreter has been updated from version 5.2 to 5.3.1.

 

 

IDE / Batch Debugger:

 

The debugger has a new command in the Options menu:

 

Profiler - toggles the batch file profiler timer on and off. When the Profiler is on, it will display the elapsed time for each command line in the margin immediately to the left of the command line.

 

The IDE status bar now includes a new field (immediately following the cursor position field) that displays the Unicode value of the character at the current cursor location.

 

The IDE will select the syntax lexer (colorization) based on the file extension:

 

.bat TCMD (or CMD)
.btm TCMD
.cmd TCMD (or CMD)
.cssCSS
.htm HTML
.htmlHTML
.luaLua
.php PHP
.plPerl
.ps1PowerShell
.pyPython
.rbRuby
.shBash shell
.sqlSQL
.tclTcl/Tk
.vbsVBScript
.xmlXML

 

Help:

 

The help has been expanded with more examples, tutorials, and key words.

 

The help is using a new skin, with a dropdown menu to print the current topic and to send email to [email protected] about the current topic.

 

 

INI Directives:

 

AppendCommandLines=yes|NO - Append a " & " between lines of a multiline paste instead of the default " ".

 

ScriptDirectory=path - The directory for tab completion scripts (the default is "Complete" in the TCMD installation directory).

 

TabToolbar=YES|no - Show or hide the tabbed toolbar.

 

 

New Environment Variables:

 

JARPATH - If the command name has a .JAR extension and JARPATH is set (the same syntax as PATH - path1;path2;path3) TCC will search it looking for a matching filename. If found, the command line will be reformatted (inserting "java.exe -jar" at the beginning) and executed. For example:

 

myjar.jar 1 2 3

will be executed as:

java.exe -jar myjar.jar 1 2 3

 

 

New Internal Variables:

 

_btdevicecount - The number of Bluetooth devices found.

 

_btradiocount - The number of Bluetooth radios installed on the system.

 

_btservicecount - The number of Bluetooth services present.

 

 

Updated Variable Functions:

 

@EVAL - Maximum precision has been increased to 30,000 digits.

 

@SERVICE - Added support for device drivers and file system drivers.

 

@SERVICE - Returns -1 if the specified service doesn't exist.

 

 

New Variable Functions:

 

@btdeviceaddress[n] - The Bluetooth address of the device whose index is n. (Indexes range from 0 to _btdevicecount.)

 

@btdeviceauthenticated[n] - Returns 1 if the Bluetooth device  n is authenticated.

 

@btdeviceclass[n] - Returns the device class for the Bluetooth device n.

 

@btdeviceconnected[n] - Returns 1 if the Bluetooth device n is connected.

 

@btdevicelastseen[n] - The last time the Bluetooth device n was seen. The format of the date is "mm/dd/yyyy hh:mm:ss".

 

@btdevicelastused[n] - The last time the Bluetooth device n was used. The format of the date is "mm/dd/yyyy hh:mm:ss".

 

@btdevicename[n] - The name of the Bluetooth device n.

 

@btdeviceremembered[n] - Returns 1 if the Bluetooth device n is a remembered device.

 

@btradioaddress[n] - The Bluetooth address of the radio whose index is n. (Indexes range from 0 to _btradiocount.)

 

@btradioclass[n] - The device class for the Bluetooth radio n.

 

@btradioconnectable[n] - Returns 1 if the Bluetooth radio n accepts incoming connections.

 

@btradiodiscoverable[n] - Returns 1 if the Bluetooth radio n is discoverable.

 

@btradiomanufacturer[n] - The manufacturer of the Bluetooth radio n.

 

@btradioname[n] - The name of the Bluetooth radio n.

 

@btradiosubversion[n] - The radio subversion of the Bluetooth radio n.

 

@email[address] - Validate an email address. @EMAIL uses the regular expression "^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$" to validate the address. This matches 99.99% of valid email address including ip's (which are rarely used). Allows for a-z0-9_.- in the username, but not ending in a full stop (i.e [email protected] is invalid) and a-z0-9- as the optional sub domain(s) with domain name and a 2-7 char (a-z) tld.

 

@parse[line,switches[,arg]] - Parse the command line for switches, returning an OR'd value for matching switches or optionally the argument(s) following the switch.

 

line - The (double quoted) command line to parse. If line is ".", TCC will substitute the command line for the current batch file.

switches - One or more switch arguments (for example, /RST will match either an /R, and /S, or a /T on the command line.

arg - An optional integer value for the argument(s) following the switch to return. A 0 will return the switch, 1 the first argument following the switch. A * will return the remainder of the command line following the switch.

 

 

Plugins:

 

You can specify a particular plugin to execute by prefixing the function / variable / command name with the plugin name and a $. For example:

 

echo %_myplugin$variable

echo %@myplugin$func[abc]

myplugin$mycommand

 

When TCC is performing tab completion, it will look for a plugin function named TABCOMPLETION. Like TABCOMPLETE scripts, TABCOMPLETION allows you to create plugin functions to customize TCC's tab completion. The syntax is:

 

INT WINAPI TABCOMPLETION(LPCTSTR CommandLPCTSTR Argumentint IndexLPCTSTR CommandLine);

 

Command - the name of the command at the beginning of the command line

 

Argument - the current argument being evaluated

 

Index - the offset in the command line of the beginning of Argument

 

CommandLine - the entire command line (double quoted)

 

When the plugin function finishes, it should return 0 if it processed the completion, and save the result(s) in the TABCOMPLETIONRESULT environment variable. If the function has multiple completion results, they should be added to TABCOMPLETIONRESULT, separated by a space (and double quoted if they contain any whitespace).

 

TCC will examine the contents of TABCOMPLETIONRESULT; if it contains a single value TCC will insert it at the completion point on the command line. If there are multiple return values, TCC will display a popup window for selection (like the F7 completion window).

 

TCC will try to find a tab completion script first; if none of them perform the requested completion, TCC will look for the plugin function.

 

 

Updated Commands:

 

CD

 

/R - Change to the target of the reparse point (hard or symbolic link).

 

At startup, TCC saves the last directory from SHRALIAS or (if loaded by TCSTART) the directory history list to the "CD -" buffer.

 

CDD

 

/R - Change to the target of the reparse point (hard or symbolic link).

 

At startup, TCC saves the last directory from SHRALIAS or (if loaded by TCSTART) the directory history list to the "CDD -" buffer.

 

COPY

 

You can override the default HTTP proxy server, proxy user, and proxy password (set in TCMD.INI) with the /Proxy... options.

 

/Proxy=server

/ProxyUser=username

/ProxyPwd=password

 

/Vn - Specifies the number of retries (0-n) if the verification fails. If n is specified and all the retries fail, the target file will be deleted.

 

DEL

 

If you are deleting to the recycle bin, the DEL result will say "xx files sent to the recycle bin" instead of "xx files deleted".

 

DIR

 

/HL - Show the hard links for files / directories. /HL can only be used in single-column mode.

 

/O:x - When combined with /S, sorts the results from all directories together and displays them in a single listing. (Unless you're also specifying /F, this isn't apt to result in anything comprehensible.)  Note that /O:x will turn off headers and footers.

 

DIRS

 

You can optionally display only those directories in the stack which match a name. For example:

 

DIRS c:        (only display directories on the C: drive)

DIRS \\server\share        (only display directories on this UNC share name)

 

The name to match can include wildcards.

 

ESET

 

Added tab completion support for variables and user-defined functions.

 
EVERYTHING

 

Everything Search as a lot of new options:

 

added option to index size, dates and attributes

added option to enable fast sorting of size, dates, attributes, path and extension

added thumbnail view

added preview pane

added REFS support

improved NTFS indexing

improved indexing performance

added advanced searching

added multi-file renaming

added content searching

improved re-indexing performance when the existing indexes are up to date

added search history organizer

added show total size in status bar option

added single click open option

added full row select option

 

FOLDERMONITOR

 

/Wn - Waits for n milliseconds before processing the file / directory change. (Useful if you have a lot of actions occurring in a short amount of time and you only care about the last one.)

 

GZIP

 

/= - Added a command dialog for GZIP.

 

LUA

 

The internal Lua interpreter has been updated from version 5.2 to 5.3.1.

 

MOVE

 

You can override the default HTTP proxy server, proxy user, and proxy password (set in TCMD.INI) with the /Proxy... options.

 

/Proxy=server

/ProxyUser=username

/ProxyPwd=password

 

PDIR

 

/O:x - When combined with /S, sorts the results from all directories together and displays them in a single listing. It's up to you to use a formatting string that will result in a comprehensible output. (Note that /O:x will turn off headers and footers.)

 

POPD

 

You can optionally restore only the most recent directory in the stack which matches a name. For example:

 

POPD c:        Pop the most recent directory on C:

POPD \\server\share        Pop the most recent directory on the UNC share

 

The name to match can include wildcards.

 

Note that this means you can optionally choose to POPD to any directory in the directory stack, not just the most recent one.

 

PUSHD

 

/R - Change to the target of the reparse point (hard or symbolic link).

 

SERVICES

 

Added support for device drivers and file system drivers.

 

/Tn        The type of services to enumerate. This can be a combination (OR'd) of the following values:

 

1Kernel drivers
2File system drivers
16Services that run in their own process
32Services that share a process with one or more other services

 

If you don't specify /T, SERVICES will default to all four types.

 

SET

 

/P - Added a kludge for a CMD bug (set /p=prompt) that some people have been using as an ECHOS equivalent.

 

/T:type[:"regexpression"] - Set a variable type. If you try to set the variable to an incompatible type, SET will return an error. The supported types are:

 

int (or 1)The variable can only contain 0-9
dec (or 2)The variable can only contain 0-9, the decimal character, and the thousands separator
hex (or 3)The variable can only contain 0-9 and A-F
bool (or 4)The variable can only contain 0 or 1
alpha (or 5)The variable can only contain A-Z and a-z
alnum (or 6)The variable can only contain A-Z, a-z, and 0-9
regex (or 7)The variable must match the specified regular expression

 

SETARRAY

 

/F - Force overwrite of existing array (if any).

 

/T:type[:"regexpression"] - Set a variable type for one of the array dimensions. If you try to set the variable to an incompatible type, SETARRAY will return an error. The supported types are:

 

int (or 1)The variable can only contain 0-9
dec (or 2)The variable can only contain 0-9, the decimal character, and the thousands separator
hex (or 3)The variable can only contain 0-9 and A-F
bool (or 4)The variable can only contain 0 or 1
alpha (or 5)The variable can only contain A-Z and a-z
alnum (or 6)The variable can only contain A-Z, a-z, and 0-9
regex (or 7)The variable must match the specified regular expression

 

START

 

/RUNAS - added support for /TAB, /TABNA, and /WAIT.

 

/RUNAS - if the user name begins with .\, TCC will substitute the computer name for the ".".

 

SYNC

 

/P - will now prompt for deletes as well as copies.

 

TPIPE

 

All internal temporary files are now thread-safe to avoid conflicts when running TPIPE simultaneously in multiple TCC sessions.

 

You can now back quote a TPIPE option if you want to include special characters in an argument string. For example:

 

tpipe /input=file /replace=`4,0,0,0,0,0,0,0,0,"b/a",foo`

 

UNGZIP

 

/= - Added a command dialog for UNGZIP.

 

VIEW

 

VIEW recognizes when it is running on a high resolution monitor and adjusts the user interface accordingly.

 

VIEW will highlight all occurrences of selected text.

 

You can override the default proxy server, proxy user, and proxy password (set in TCMD.INI) with the /Proxy... options.

 

/Proxy=server

/ProxyUser=username

/ProxyPwd=password

 

WEBFORM

 

Added support for SSL connections.

 

WEBUPLOAD

 

Added support for SSL connections.

 

 

New Commands:

 

BTMONITOR

 

Monitor when a Bluetooth device is connected or disconnected. The syntax is:

 

BTMONITOR [/C [action]]

BTMONITOR name [Connected | Disconnected] [n | FOREVER] command

 

name is the Bluetooth device name you want to monitor; it can include wildcards.

 

BTMONITOR sets three environment variables:

 

_btindex - The index of the Bluetooth device being connected or disconnected (for the @btdevice... functions)

_btaddress - The address of the Bluetooth device being connected or disconnected

_btname - The name of the Bluetooth device being connected or disconnected

 

BZIP2

 

The BZIP2 command creates bzip2 (*.bz2) compressed archives. BZIP2 is normally used for compressing a single file; if you need to compress multiple files you should use the ZIP (or TAR) command. The syntax is:

BZIP2 [/= /A:[[-][+]rhsdaecjot] /A /M /Q /V] bzip2archive [@file] file

bziparchiveThe .bz2 file to work with
fileThe file to extract

 

/= - Invokes the BZIP2 command dialog

/A:... - Attribute selection

/A - Add file (default)

/C - Contents

/M - Move the file to the bzip2 archive and delete the original on disk

/Q - Quiet (don't display filenames as they are added to the archive).

/V - View filename(s) in archive

 

JAR

 

Add, update, or delete files in a Java .JAR archive. The .JAR file may then be imported into Java code or executed by a JVM. The syntax is similar to the ZIP command:

 

JAR [/A:[[-][+]rhsdaecjot] /A /C /D /F /Ln /M /Ne /Nt /O:[-]adegnrstu /P /Q /R /TEST /U /V] jararchive [@file] file...

 

jararchiveThe jar file to work with
fileThe files(s) to be added to the jar file

 

/= - Invokes the JAR command dialog

/A:... (attribute switch)

/A(dd)

/C(ontents)

/D(elete)

/F(reshen)

/Ln (compression level)

/M(ove)

/O:... (sort order)

/P - Progress

/Q - Quiet

/R - Recurse

/TEST - Test

/U - Update

/V - View

 

LOCKMONITOR

 

Monitor when the session is locked or unlocked. The syntax is:

 

LOCKMONITOR [/C [action]]

LOCKMONITOR [Locked | Unlocked] [n | FOREVER] command

 

RESTOREPOINT

 

RESTOREPOINT creates, removes, or lists the Windows system restore points. TCC must be running in an elevated session to create or remove restore points. RESTOREPOINT is not supported in Windows Server. The syntax is:

 

RESTOREPOINT [/C /D=description /R n ]

 

/C - Create a restore point

/D= - The description shown when displaying restore points

/R - Remove the restore point whose sequence is n.

 

TABCOMPLETE

 

TABCOMPLETE allows you to create scripts to customize TCC's tab completion, using any scripting language supported by TCC (i.e., BTM, Lua, Python, REXX, etc.). The syntax is:

 

TABCOMPLETE [/= /L script /P /S /U script]

 

/= - Display the TABCOMPLETE command dialog

/L - Load a tab completion script

/P - Pause after displaying a page of script names (only used with /S)

/S - Display the names of all active tab completion scripts

/U - Unload a tab completion script.

 

You can create a maximum of 256 tab completion scripts, each of which can process any number of command names, variables, functions, etc. When TCC starts, it will automatically load any scripts in the "Complete" subdirectory in the TCC installation directory.

 

A tab completion script is passed four arguments:

 

Command - the name of the command at the beginning of the command line

Argument - the current argument being evaluated

Index - the offset in the command line of the beginning of Argument

CommandLine - the entire command line (double quoted)

 

When the script finishes, it should return 0 if it processed the completion, and save the result(s) in the TABCOMPLETIONRESULT environment variable. If the script has multiple completion results, they should be added to TABCOMPLETIONRESULT, separated by a space (and double quoted if they contain any whitespace).

 

TCC will examine the contents of TABCOMPLETIONRESULT; if it contains a single value TCC will insert it at the completion point on the command line. If there are multiple return values, TCC will display a popup window for selection (like the F7 completion window).

 

UNBZIP2

 

The UNBZIP2 command will uncompress archives that have been compressed using the bzip2 format. The syntax is:

 

UNBZIP2 [/= /C /E /O /Q /V] bziparchive [path]

 

bzip2archiveThe .bz2 file to work with
pathThe path where files will be extracted

 

/= - Invokes the UNBZIP2 command dialog

/C - Contents

/E - Extract file (default).

/O - Overwrite existing file.

/Q - Quiet (don't display filenames as they are extracted from the archive).

/V - View the file name(s)

 

UNJAR

 

Extract or list files in a Java .JAR archive. The syntax is similar to the UNZIP command:

 

UNJAR [/= /A:[[-][+]rhsdaecjot] /C /E /F /O /P /Q /T /TEST /U /V] jararchive [path] [@file] file...

 

jararchiveThe JAR file to work with
pathThe path where files will be extracted
fileThe file(s) to extract

 

/= - Invokes the UNJAR command dialog

/A:... (attribute switch)

/C(ontents)

/E(xtract)

/F(reshen)

/O(verwrite)

/P - Progress

/Q - Quiet

/TEST - Test

/U - Update

/V - View

 

 

Bug Fixes:

 

ZIP /I - fixed a problem with the description not always being saved.

 

7ZIP /i - fixed a problem with the description not always being saved.

 

ZIP, 7ZIP, GZIP, TAR - Fixed a problem with /M not deleting the file description.