What's New in Version 20.0

Take Command 20.0:

 

Installer:

 

The Take Command v20.0 installer now combines the 32-bit and 64-bit versions of Take Command in a single installer (TCMD.EXE).

 

Take Command v20.0 is using new version of Advanced Installer.

 

 

Take Command:

 

Take Command v20 has a new combined help file and viewer TCHELP.EXE, which replaces the compiled HTML help (TCMD.CHM). TCHELP combines the benefits of the CHM and WebHelp formats, and has some features unavailable in either CHM or WebHelp, including:

 

Unlike WebHelp, TCHELP comes in a single file

Unliike CHM files, TCHELP is optimized for high-resolution displays

TCHELP can be opened from network drives on local networks

Repeated calls to TCHELP open in the same help window

 

Take Command v20.0 has extensive internal revisions to make it smaller and faster.

 
Take Command v20.0 is using a new version of the GUI framework.

 

Take Command v20.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 v20.0 will now automatically resize the (hidden) console font size to avoid a problem with Windows restricting the maximum console window size (and thus the effective tab window size) based on the size of the default console font. (This is normally only an issue with high resolution monitors.)

 

Take Command v20.0 now optionally supports ANSI escape sequences in all console applications (not just for TCC internal commands). See the TCC section below for details on what ANSI sequences are supported.

 

The Take Command tabbed toolbar buttons have an additional "Tooltip" option to set the tooltip that will pop up when you hover over the button.  (If you don't set a tooltip, Take Command will display the full command name.)

 

The Take Command "Options / Configuration / Take Command / Register" dialog has new options to request a manual activation key (for computers that do not have internet access) and to unregister Take Command on a computer.

 

The Take Command Registration dialog (displayed at startup time for trial versions) has a new option to request a manual activation key for computers that do not have internet access.

 

The Oniguruma regular expression library in Take Command has been replaced with Onigmo. There are a number of additions in Character types, Extended groups. Back References, and Subexp calls. See Regular Expression Syntax for details.

 

 

TCC:

 

TCC v20.0 has extensive internal revisions to make it smaller and faster.

 

There have been a number of internal changes to try to reconcile the (inherently incompatible) ANSI and Windows code pages.

 

The TCC "OPTION / Register" dialog has new options to request a manual activation key (for computers that do not have internet access) and to unregister Take Command on a computer.

 

The Oniguruma regular expression library in TCC has been replaced with Onigmo. There are a number of additions in Character types, Extended groups. Back References, and Subexp calls. See Regular Expression Syntax for details.

 

The Ipworks dll's have been updated to new versions.

 

The internal Lua interpreter in TCC has been updated to 5.3.3.

 

Added support for Python 3.6.

 

Added support for Tcl/Tk 8.6.

 

VIEW is using a new version of V.

 

TCC will now reset the history pointer to the original position if you press ESC or ^C during a history recall (cursor up / down) sequence.

 

ANSI support has been extended to support many more escape sequences. TCC now supports these sequences; all are prefixed with an ESC (ASCII 27, or ^e):

 

[A        move cursor up one line

[#A        move cursor up # lines

 

[a        move cursor right one character

[#a        move cursor right # characters

 

[B        move cursor down one line

[#B        move cursor down # lines

 

[b        repeat the previous character

[#b        repeat the previous character # times

 

[C        move cursor right one character

[#C        move cursor right # characters

 

[D        move cursor left one character

[#D        move cursor left # characters

 

[E        move cursor down one line and to first column

[#E        move cursor down # lines and to first column

 

[d        move cursor to first line

[#d        move cursor to line #

 

[e        move cursor down one line

[#e        move cursor down # lines

 

[F        move cursor up one line and to first column

[#F        move cursor up # lines and to first column

 

[f        move cursor to top-left

[#f        move cursor to line # and first column

[#;#f        move cursor to line #, column #

 

[G        move cursor to first column

[#G        move cursor to column #

 

[H        move cursor to top-left

[#H        move cursor to line # and first column

[#;#H        move cursor to line #, column #

 

[I        move cursor forward one tab

[#I        move cursor forward # tabs

 

[J        erase from cursor to the end of display

[0J        as above

[1J        erase from the start of display to cursor

[2J        erase display and move cursor to the top-left

 

[j        move cursor left one character

[#j        move cursor left # characters

 

[K        erase from cursor to the end of line

[0K        as above

[1K        erase from the start of line to cursor (inclusive)

[2K        erase line

 

[k        move cursor up one line

[#k        move cursor up # lines

 

[L        insert one blank line

[#L        insert # blank lines

 

[M        delete one line

[#M        delete # lines

 

[m        restore default color (and intensity)

[0m        as above

[...m        set color / intensity attributes (any of these numbers, separated by semicolons):

          0        all attributes off

          1        bold (foreground is intense)

          4        background is intense

          5        background is intense

          7        reverse video

          8        concealed (foreground becomes background)

         22        bold off (foreground is not intense)

         24        background is not intense

         25        background is not intense

         27        normal video

         28        concealed off

         30        foreground black

         31        foreground red

         32        foreground green

         33        foreground yellow

         34        foreground blue

         35        foreground magenta

         36        foreground cyan

         37        foreground white

         39        default foreground

         40        background black

         41        background red

         42        background green

         43        background yellow

         44        background blue

         45        background magenta

         46        background cyan

         47        background white

         49        default background

 

[P        delete one character

[#P        delete # characters

 

[s        save cursor position

 

[u        move cursor to saved position (or top-left, if nothing was saved)

 

[X        erase one character

[#X        erase # characters

 

[Z        move cursor back one tab

[#Z        move cursor back # tabs

 

[@        insert one blank character

[#@        insert # blank characters

 

[`        move cursor to first column

[#`        move cursor to column #

 

[?7h        wrap lines at screen edge

[?7l        don't wrap lines at screen edge

 

[?25h        show cursor

[?25l        hide cursor

 

[21t        sends "^e]lTitle^e\" (the console's window title) to console input

 

]0;TitleBEL

]2;TitleBEL        Sets the console title to "Title"; BEL is the ASCII character 7

 

 

IDE / Batch Debugger:

 

The batch IDE has a new Toolbox window that lists all of the internal commands, variables, and variable functions organized by category. Double-clicking on a command will display its command dialog (if it has one), and then insert the resulting command on the current line in the editor. Selecting a command or variable and then pressing F1 will display the help for that command/variable.

 

Ctrl-F7 will invoke the regular expression analyzer while in the editor.

 

 

Help:

 

The v20 help is built with a new version of the help compiler (Help & Manual).

 

The HTML help and the web help have updated templates.

 

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

 

 

INI Directives:

 

ANSI=NO|yes - Enable ANSI escape sequence support for all console applications running in Take Command tab windows (in the [TakeCommand] section of TCMD.INI). Take Command will inject a dll (ANSI32.dll or ANSI64.dll) into the console applications it starts. Note that if you have enabled ANSI in Take Command, you should disable ANSI support in TCC (OPTION / Windows).

 

 

New Environment Variables:

 

TCANSIEXCLUDE - A semicolon-delimited list of applications where you do not want to have Take Command inject the ANSIxx.dll (see ANSI above).

 

 

New Internal Variables:

 

_dedup_errors - The number of errors in a DEDUP command (usually access denied).

 

_dedup_files - The number of duplicated files found.

 

_differ_added - The number of files in the target directory not found in the source directory in a DIFFER command.

 

_differ_changed - The number of files in the target directory that have been changed (file date/time stamp) compared to the source directory.

 

_differ_deleted - The number of files in the source directory not found in the target directory in a DIFFER command.

 

_differ_errors - The number of errors in a DIFFER command (usually access denied when comparing hashes).

 

_foldertime - The system time of the most recent FOLDERMONITOR update (hh:mm:ss.ms).

 

 

Updated Internal Variables:

 

_idleticks - removed 49-day maximum. You can now leave your system inactive for a few thousand years and still get an accurate _idleticks value.

 

 

Updated Commands:

 

COPY - Added a new option /Nr.  If set, a COPY /W will delete to the recycle bin (unless the file matches the RECYCLEEXCLUDE environment variable).

 

EXCEPT - Added a /Ne option to not display an error message if EXCEPT can't find a matching file.

 

FOLDERMONITOR - Added a mutex to the FOLDERMONITOR thread to allow multiple simultaneous access (by multiple TCC sessions or plugins). Also added a new command variable _foldermonitor that returns the system time of the event.

 

HELP - Has been completely redone (see above). Help also has two new options:

 

/I - Show the Index instead of the topic

 

/S - Show the Search window instead of the topic

 

MOVE - When deleting to the recycle bin, MOVE now checks the RECYCLEEXCLUDE environment variable. If the file matches, MOVE deletes the file instead of sending it to the recycle bin.

 

SYNC - Added a new option /Nr.  If set, a SYNC /W will delete to the recycle bin (unless the file matches the RECYCLEEXCLUDE environment variable).

 

TCTOOLBAR - Added support for an optional "tooltip" argument to set the tooltip that will pop up when you hover over the button.

 

 

New Commands:

 

DEDUPE - Search for and optionally delete or symlink duplicated files. DEDUPE searches one or more directories, assigns a hash value to files, and then compares the hash value to all the other files. On slow systems (and particularly in x86 Windows) this can take a while, so you should try to reduce the amount of searching & hashing by using ranges, and not trying to dedupe an entire disk at one time.

 

DEDUPE assumes that the first file it finds for each hash is the original file.

 

The syntax is:

 

DEDUPE [ranges] [/A:[[-|+]rhsadecijopt /D /L /N[defjnst] /P /Q /R /S[[+]n] /SHA1 /SHA256 /SHA384 /SHA512 /T /V /W[n]] filename directory [directory...]

 

filenameThe filename to search for (* for everything)
directoryThe directories (and optionally subdirectories) to search

 

/= - Invokes the DEDUPE command dialog

/A:... - Attribute selection

/D - Delete duplicate files

/L - Convert duplicate files to symlinks of the first file. Note that to create symlinks, you must be in an elevated session.

/N -

dSkip hidden directories (when used with /S)
eDon't display errors
fDon't display the bytes freed in the summary
jSkip junctions (when used with /S)
sDon't display the summary
tDon't update the CD / CDD extended directory search database (JPSTREE.IDX)

/P - Prompt before deleting or symlink'ing files.

/Q - Quiet (don't display directories or files as they are processed)

/R - Delete to the recycle bin

/S[n] - Search subdirectories

/SHAx - Hash algorithm to use. The default is SHA1; you can use SHA256, SHA384, or SHA512 but (1) it isn't necessary unless you've created files specifically for hacking SHA1, and (2) it will slow down DEDUPE.

/V - Verbose output

/Wn - Wipe deleted files

 

DIFFER - Compare two directories and display files that have been added, changed, or deleted. If you don't specify the /A, /C, and/or /D options, DIFFER will prefix the line with a [*] for changed files, [+] for added files, and [-] for deleted files.

 

The syntax is:

 

DIFFER [ranges] [/A:[[-|+]rhsadecijopt /A /C /D /N[js] /S source target

 

source - source directory

target - target directory

 

/= - Invokes the DIFFER command dialog

/A:... - Attribute selection

/A - Added files

/C - Changed files

/D - Deleted files

/N

eDon't display errors
jSkip junctions (when used with /S)
sDon't display the summary

/S[n] - Search subdirectories

/SHAx - Compare file hashes. The default is SHA1; you can use SHA256, SHA384, or SHA512.  If you don't specify /SHAx, then DIFFER will compare the file times (which is much faster, but can't determine that two files are identical if the date/times are different)..

 

PSUBST - Associates a path with a drive letter. Like the Windows SUBST command, but the drive substitution is optionally persistent (i.e., when the machine is restarted).

 

The syntax is:

 

PSUBST [drive1: [path]]

PSUBST /D drive1:

PSUBST /P drive1: [drive2:]path]

 

drive1:Specifies a virtual drive to which you want to assign a path.

 

/=Invokes the PSUBST command dialog
pathSpecifies a physical path you want to assign to a virtual drive (no trailing backslash).
/DDeletes a substituted (virtual) drive.
/PMake a new or existing virtual drive persistent.

 

PSUBST with no parameters will display a list of the current virtual drives. If a drive is persistent, it will be prefixed with a *.