Feature List:

 

Updated the TextPipe engine to 9.3.1.

 

Updated the Scintilla editor (used by the IDE and Command Input window) to 3.2.5.

 

Updated the installer.

 

Updated the registration & licensing modules. Registration can now only be done from within Take Command (Help menu), not TCC.

 

Take Command, TCC, and the IDE (batch debugger) have been optimized to load faster.

 

The Take Command help is now also available in ePUB format at http://jpsoft.com/downloads/v15/TakeCommand.epub. You can choose either the PDF or ePUB format for reading on your portable devices.

 

TCC is now supported in the Windows PE environment. (There are a few commands that won't work because of missing Windows APIs, and Take Command won't work because there is no GUI.)

 

Take Command now doesn't update the Folder & List Views at startup if they are disabled or set to AutoHide. (This will speed up the load time substantially if you have network drives which are mapped but unavailable.)

 

The password fields in TCMD.INI are now encrypted when they are saved. (The encryption is strong, but if somebody wants to debug TCC.EXE and monitor the API calls, they'll eventually be able to figure out the unencrypted strings. But they'll have to work for it.)

 

The Command Input window now uses the same font and point size as the tab windows.

 

Take Command now disables updates when renaming folders in the Folder View.

 

Take Command now disables updates when renaming files or directories in the List View.

 

Take Command now disables updates when editing descriptions in the List View.

 

The Take Command Folder View now supports Ctrl-C or Ctrl-Insert to copy the current selection to the clipboard.

 

The Take Command List View now supports Ctrl-C or Ctrl-Insert to copy the current selection(s) to the clipboard.

 

Take Command now supports copying descriptions in DESCRIPT.ION when copying / dragging / dropping files in the Folder & List View windows.

 

Added a global hotkey (default Ctrl-Shift-Z) to toggle Take Command to and from the system tray.

 

Updated the Internet support dll's for TCC.

 

Updated the zip / tar support dll's for TCC.

 

Added support for the new OpenAFS 1.7.x redirector when retrieving the volume information (for example, in FREE, %@DISKFREE, etc.).

 

The TCC command line editor has Undo and Redo support. You can remap the keys with the "Undo" and "Redo" key mapping entries in TCMD.INI.

 

Undo - Alt-Z

Redo - Alt-Y

 

Batch Editor / Debugger:

 

When a file has been modified, the tab title will be updated with a leading *. When the file is saved, the * will be removed.

 

INI Directives:

 

AutoProxy=YES|no Enable / disable automatic HTTP proxy detection

 

AutoFirewall=YES|noEnable / disable automatic firewall detection

 

TrayHotKey=ZThe 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-Z.

 

Copyright=YES|noDisplay the TCC copyright message at startup. This is the same as the TCC /Q startup option, and only applies to registered copies.

 

EverythingSearch=yes|NOIf YES, CDD will use "Everything Search" (http://www.voidtools.com) instead of JPSTREE.IDX for fuzzy directory matching. See CDD for details.

 

FilesCaseSensitive=yes|NOIf YES, filename comparisons will be case sensitive (like Linux, and unlike Windows).

 

Redo=Alt-YKey mapping directive to redo last edit (see Undo and Redo above).

 

Undo=Alt-ZKey mapping directive to undo last edit (see Undo and Redo above).

 

The password fields in TCMD.INI for the Internet settings are encrypted.

 

Internal Variables:

 

%_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.

 

Variable Functions:

 

%@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 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 returned in the SELECT_LINE environment variable (the first line is 1).

 

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:

 

@SELECT[filename,top,left,bottom,right,title[,sorted[,startline,[keymask]]]]

 

%@TIME - Added (not very useful, not recommended, and then only for the USA) support for am/pm time. For example:

 

%@TIME[1:39:15pm]

 

%@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:

 

Plugins can now access array variables directly through the ArrayVariables array. See TakeCmd.h in the SDK for details.

 

Updated Commands:

 

CD

 

If the TCMD.INI directive "EverythingSearch" is set, CD will use "Everything Search" (http://www.voidtools.com) instead of JPSTREE.IDX for fuzzy directory searches. Everything Search is slightly faster, but will only work on local NTFS drives. Setting EverythingSearch is the equivalent of setting FuzzyCD=3 (*name*), unless you're using regular expressions.

 

CDD

 

If the TCMD.INI directive "EverythingSearch" is set, CDD will use "Everything Search" (http://www.voidtools.com) instead of JPSTREE.IDX for fuzzy directory searches. Everything Search is slightly faster, but will only work on local NTFS drives. Setting EverythingSearch is the equivalent of setting FuzzyCD=3 (*name*), unless you're using regular expressions.

 

COPY

 

If you specify the /C, /CF, /R, /U, or /UF options, COPY will append a ! to the copy specifier if the target exists and is being overwritten. For example:

 

[d:\]        copy file1 file2

file1 =>! file2

 

If the EverythingSearch option is set, COPY won't try to update JPSTREE.IDX for local NTFS drives.

 

The /N option no longer creates empty subdirectories when used with /S.

 

DEL

 

If the EverythingSearch option is set, DEL won't try to update JPSTREE.IDX for local NTFS drives.

 

FREE

 

Now supports the OpenAFS 1.7.x redirector to retrieve disk space usage.

 

IF

 

If the "DupBugs" TCMD.INI directive (OPTION / Startup / "Duplicate CMD.EXE bugs") has been set, the IF behavior is different when in a command group in a batch file. If there are multiple command lines in the command group, a failed IF will now only ignore the remainder of the commands on that line. The commands on the subsequent lines will still be executed.

 

IFTP

 

/EP - Use Extended Passive mode. (Works with FTP and FTPS, but not SFTP.)

 

/IPv6 - By default, IFTP expects an IPv4 address for the local and remote host, and will create an IPv4 socket. The /IPv6 option tells IFTP to use IPv6 instead. (Works with FTP, FTPS, and SFTP connections.)

 

/PR="nnn" - When using active mode, IFTP uses any available port to listen to incoming connections from the server. You can override this behavior by setting /PR (PortRange) to a value containing the range of ports the class will be listening to. The range is provided as start-end, for instance: "1024-" stands for anything higher than 1024, "1024-2048" stands for ports between 1024 and 2048 inclusive, "4000-4010, 50000-50010" stands for ports between 4000 and 4010 or between 50000 and 50010. (Works with FTP and FTPS, but not SFTP.)

 

 /Z[n] - Use Zlib compression. You can optionally set the compression level (0-9; the default is 7). Zlib compression must be enabled on the server, and will only work with FTP and FTPS connections (not SFTP).

 

JABBER

 

/F"filename" - Send a file to the specified target.

 

MD

 

If the EverythingSearch option is set, MD won't try to update JPSTREE.IDX.

 

MOVE

 

If you specify the /C, /CF, /R, /U, or /UF options, MOVE will append a ! to the move specifier if the target exists and is being overwritten. For example:

 

[d:\]        move file1 file2

file1 ->! file2

 

/G - Will now display the % moved even if Windows is doing a rename (which may be a copy & delete internally).

 

If the EverythingSearch option is set, MOVE won't try to update JPSTREE.IDX for local NTFS drives.

 

OPTION

 

OPTION now allows you to set "Auto SSL" for SMTP (i.e., SENDMAIL and SENDHTML).

 

OSD

 

OSD now lets you control up to 10 simultaneous OSD displays. (OSD allows you to create any number of windows, but you can only close the ones you've labeled from 0-9.) There are two new switches:

 

/C=n - Close the OSD window n (0-9). /C=n must be the only argument to OSD.

 

/ID=n - Open the OSD window n (0-9). /ID must be the first argument to OSD.

 

If you don't specify an /ID, OSD will default to window 0.

 

PLUGIN

 

PLUGIN now accepts multiple plugin name arguments. (The new syntax should still support commands using the old syntax.) The syntax is:

 

PLUGIN [/B /C /F /I /K /L /P /U /V] plugin ...

 

PRINT

 

PRINT now accepts piped & redirected input to send to the printer. If there is no filename, PRINT will read from STDIN, create a temporary file, and send it to the printer.

 

PROMPT

 

~ - New metacharacter (substitute for P). If the environment variable HOME (or HOMEDRIVE + HOMEPATH) exists, TCC will compare the variable to the beginning of the current path. If they match, TCC will substitute ~ for the variable part. (If they don't match, ~ is treated like a P.)

 

For example:

 

[c:\] set home=c:\users\myself

[c:\] set prompt=[$~]

[c:\] cd \users\myself\downloads

[~\downloads]

 

RD

 

If the EverythingSearch option is set, RD won't try to update JPSTREE.IDX for local NTFS drives.

 

REN

 

If the EverythingSearch option is set, REN won't try to update JPSTREE.IDX for local NTFS drives.

 

SENDHTML

 

/= (Command dialog) - Added the BCC: option.

 

/SMTP=server - Overrides the default SMTP server to use to send mail.

 

/USER=address - Overrides the default email account to use to send mail.

 

The OPTION command now allows you to set "Auto SSL" for SENDHTML.

 

SENDMAIL

 

/= (Command dialog) - Added the BCC: option.

 

/SMTP=server - Overrides the default SMTP server to use to send mail.

 

/USER=address - Overrides the default email account to use to send mail.

 

The OPTION command now allows you to set "Auto SSL" for SENDMAIL.

 

SYNC

 

If the EverythingSearch option is set, SYNC won't try to update JPSTREE.IDX for local NTFS drives.

 

TAR

 

/TEST - Test the integrity of the TAR file (header and contents). Any errors will be displayed on STDERR.

 

TPIPE

 

TPIPE is using a new version of the text pipe engine. There are a number of additional TPIPE options in v15.

 

Grep filters now allow Unicode patterns (when UTF-8 support mode is enabled).

 

Split filter now allows Unicode filenames, and Unicode file break patterns.

 

Removed the (completely useless) Quick Help from TPIPE. A "TPIPE /?" now invokes the online help for TPIPE.

 

/BUFFERSIZE - Sets the buffer size for the preceding search/replace filter. (The default is 4096.)

 

/buffersize=n

 

/EDITDISTANCE - Sets the edit distance threshold for the preceding search/replace filter. (The default is 2.)

 

/editdistance=n

 

/DATABASE - Adds a database-type filter.

 

/database=Mode,GenerateHeader,Timeout,Connection,InsertTable,FieldDelimiter,Qualifier

 

Mode

0 Delimited output

1 Fixed width

2 XML

3 Insert script

 

GenerateHeader - Generates header information when True.

 

Timeout - SQL command timeout in seconds.

 

ConnectionStr - The database connection string.

 

InsertTable - The name of the insert table.

 

FieldDelimiter - The string to use between columns.

 

Qualifier - The string to use around string column values.

 

/SELECTION - Added additional options for restriction filter types. (Restriction filters require sub filters to have any effect.)

 

/selection=Type,Locate,Param1,Param2,MoveTo,nDelimiter,CustomDelimiter,HasHeader[,ProcessIndividually]

The new Type options are:

1Restrict lines
2Restrict columns
3Restrict to bytes
4Restrict to delimited fields (CSV, Tab, Pipe etc.)

 

The new ProcessIndividually option specifies whether to apply sub filters to each CSV or Tab field individually (1), or to the fields as one string value (0). The default is false.

 

/MATHS - Adds a maths type filter. The syntax is:

 

/maths=operation,operand

 

operation - the operation to perform

0+
1-
2*
3div (the remainder is ignored)
4mod (the remainder after division)
5xor
6and
7or
8not
9shift left (0 inserted)
10shift right (0 inserted)
11rotate left
12rotate right

 

operand - the operand to use

 

/PERL - Sets the Perl matching options for the immediately preceding search/replace filter.

 

/perl=BufferSize,Greedy,AllowComments,DotMatchesNewLines

 

BufferSize - The maximum buffer size to use for matches. Any match must fit into this buffer, so if you want to match larger pieces of text, increase the size of this buffer to suit. Default is 4096.

Greedy - If the pattern finds the longest match (greedy) or the shortest match. Default is false.

AllowComments - Allow comments in the Perl pattern. Default is false.

DotMatchesNewLines - Allow the '.' operator to match all characters, including new lines. Default is true.

 

/REPLACELIST - Add a search and replace list, using search and replace pairs from the specified file.

/replacelist=Type,MatchCase,WholeWord,CaseReplace,PromptOnReplace,FirstOnly,SkipPromptIdentical,Simultaneous,LongestFirst,Filename

Type:

0 Replace

1 Pattern (old style)

2 Sounds like

3 Edit distance

4 Perl pattern

5 Brief pattern

6 Word pattern

 

MatchCase - Matches case when set to 1, ignores case when set to 0

 

WholeWord - Matches whole words only when set to 1

 

CaseReplace - Replaces with matching case when set to 1

 

PromptOnReplace - Prompts before replacing when set to 1

 

FirstOnly - If 1, only replace the first occurrence

 

SkipPromptIdentical - If 1, don't bother prompting if the replacement text is identical to the original.

 

Simultaneous - If 1, all search strings are scanned for simultaneously instead of consecutively. (This is useful if the search strings and results strings overlap.)

 

LongestFirst - If 1, searches for long phrases (most specific) before short phrases (least specific) - this is generally used for translations.

 

Filename - The file to load search/replace pairs from. If the file extension is .XLS or .XLSX, the file is assumed to be Excel format, if the extension is .TAB the file is assumed to have tab-delimited values, and any other extension (including .CSV) is assumed to have Comma-Separated Values.

 

The filename can contain environment variables enclosed in % signs e.g. %TEMP%\myfile.txt. TPIPE corrects any doubled backslashes.

 

/SCRIPT - Adds an ActiveX script filter. The syntax is:

 

/script=language,timeout,code

 

language: The language of the script

timeout:  The command timeout in seconds

script:  The code

 

/STARTSUBFILTERS - The following filters are created as sub filters, until the closing /ENDSUBFILTERS. Sub filters allow a restricted part of the entire text to be operated on by a group of filters without effecting the entire text. For example, a "Restrict to delimited fields" (CSV, Tab, Pipe, etc.) filter can pick out a range of CSV fields, and then a search/replace filter can operate JUST on the text restricted.

 

/ENDSUBFILTERS - End the sub filters defined by the preceding /STARTSUBFILTERS.

 

UNTAR

 

/TEST - Test the integrity of the TAR file (header and contents). Any errors will be displayed on STDERR.

 

UNZIP

 

/TEST - Test the integrity of the ZIP file (header and contents). Any errors will be displayed on STDERR.

 

VIEW

 

VIEW now has the ability to view CSV files as tables. CSV files are typically used to represent tabular data, where each line in the file represents a row of a table. Each line contains the text of each column in the row, separated by a comma (although other characters can be used - e.g., a TAB).

 

By default, VIEW will automatically recognize CSV files and will display them as a table - where all the columns have the same width (much like a spreadsheet). Although unlike a spreadsheet, the column widths in V are fixed (determined by the longest entry in the column) and cannot be resized. You can press the arrow button next to the new CSV Mode button in the toolbar to customize the CSV behavior. Press the CSV Mode button to toggle between CSV mode and standard text mode.

 

ZIP

 

/TEST - Test the integrity of the ZIP file (header and contents). Any errors will be displayed on STDERR.

 

New Commands:

 

ASSOCIATE

 

Combines the ASSOC and FTYPE command. ASSOCIATE will display, delete, or create associations. The syntax is:

 

ASSOCIATE [/D /F /P /R filename /U] [.ext [program]]

 

/D - Delete the association for the specified .ext

 

/F - Force an overwrite of an existing association

 

/P - Pause after each page (only useful when running ASSOCIATE with no arguments)

 

/R - Read associations from a file. The lines in the file must be in the format .ext=program

 

/U - Add the file association in HKCU instead of HKCR

 

DATEMONITOR

 

Monitor the current date and time, and execute the specified command when they match the saved time. If you don't specify any arguments, DATEMONITOR will display the current dates & times it is monitoring, and the associated commands.

 

DATEMONITOR [/C] yyyy-mm-dd hh:mm n command

 

/CClear any existing date monitors
nNumber of repetitions (or FOREVER)
commandCommand to execute when the date matches the current time

 

The date must be in ISO (yyyy-mm-dd) format, and the time in 24-hour format.

 

DATEMONITOR sets two environment variables when the condition is triggered:

 

_datemonitor        The current date in yyyy-mm-dd format

_timemonitor        The current time in hh:mm (24-hour) format

 

ECHOX

 

Echo a line to STDOUT without performing any variable expansion or redirection. The syntax is:

 

ECHOX text

 

ECHOXERR

 

Echo a line to STDERR without performing any variable expansion or redirection. The syntax is:

 

ECHOXERR text

 

EVERYTHING

 

Search for files and/or directories on local NTFS drives using "Everything Search" (http://www.voidtools.com). EVERYTHING by default does a wildcard search equivalent to "*filename*", and outputs the full pathname of all matching files and/or directories. The syntax is:

 

EVERYTHING [/C /D /F /M=n /P /R /W] filename [...]

 

/CFilename matching is case sensitive

 

/DOnly search for directories

 

/FOnly search for files

 

/M=nOnly return a maximum of n files / directories. (Note that /M determines the total number of matches prior to any additional filtering. If you use /D or /F you will end up with the total minus the number of directories or files you excluded.)

 

/PMatch path names

 

/Rfilename is a regular expression (EVERYTHING will automatically set the regular expression flag if the filename begins with ::)

 

/WMatch whole word

 

You need to install Everything Search and index your local NTFS drives before using EVERYTHING.

 

SCREENMONITOR

 

Executes the specified command when a screen saver is active. If you don't specify any arguments, SCREENMONITOR will display the current screen saver monitor command (if any). Once the condition has been set, it will not be set again until the screen saver becomes inactive and then active again.

 

SCREENMONITOR [/C] n command

 

/CClear any existing screen saver monitors
nNumber of repetitions (or FOREVER)
commandCommand to execute when the screen saver becomes active