Feature List:

 

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

 

The Take Command installer now offers to optionally associate batch files (.BAT, .BTM, and/or .CMD) with TCMD.EXE.

 

Take Command v18.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 v18.0 is using a new version of Oniguruma (regular expression parser).

 

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

 

The Everything Search Engine from voidtools is now included in Take Command.

 

Error logging and exception handling has been completely redone. Instead of a TCMD.GPF / TCC.GPF file, Take Command, TCC, and the IDE will now create tcmd.log, tcc.log, and ide.log files that contain the error info (including the file name, function, and line number of the error). The log files will be created in the installation directory if it is writeable (i.e. not in "Program Files" or "Program Files (x86)). If not, they will be in c:\users\<username>\appdata\local\jpsoft.

 

 

Take Command:

 

The open file / save file dialogs have been updated to the Windows 7 / 8 format.

 

There is a new menu entry "Regex" under Tools, that displays a regular expression analyzer. There are two edit boxes:

 

1) The first is for the regular expression to test.. If the regular expression is valid, the dialog will display a green check to the right of the expression edit box. If the regular expression is invalid, the dialog will display a red X.

2) The second edit box is for the text you want to match against the regular expression. If the text matches the regex, the dialog will display a green check to the right of the test edit box. If the text doesn't match, the dialog will display a red X.

 

regex

 

 

TCC:

 

The open file / save file dialogs have been updated to the Windows 7 / Windows 8 format.

 

There is a new popup dialog (invoked by pressing Ctrl-F7), that displays a regular expression analyzer. There are two edit boxes:

 

1) The first is for the regular expression to test.. If the regular expression is valid, the dialog will display a green check to the right of the expression edit box. If the regular expression is invalid, the dialog will display a red X.

2) The second edit box is for the text you want to match against the regular expression. If the text matches the regex, the dialog will display a green check to the right of the test edit box. If the text doesn't match, the dialog will display a red X.

 

regex

 

 

IDE / Batch Debugger:

 

The open file / save file dialogs have been updated to the Windows 7 / Windows 8 format.

 

The Options menu has two new entries:

 

TCC Syntax - use the TCC syntax colorizer. (This is the default for BAT, BTM, and CMD files.)

CMD Syntax - use the CMD syntax colorizer. (Useful when writing CMD-only batch files.)

 

There is a new tab window at the bottom ("Modified") that shows all variables that are set while executing the batch file. (This is like the "Auto" window in Visual Studio.)

 

File/Open now loads the breakpoint file (filename.ext.bp) and the watched vars file (filename.ext.watch) automatically when you load a batch file.

 

File/Save now saves the breakpoint file (filename.ext.bp) and the watched vars file (filename.ext.watch) automatically when you save a batch file.

 

 

INI Directives:

 

EverythingSearch=YES|no - now defaults to YES.

 

Regex=Ctrl-F7 - default key to pop up the regular expression analyzer dialog.

 

RightClickPaste=yes|NO - if YES, a right click in a TCMD tab window will paste the clipboard contents instead of invoking the context menu. (Note that this isn't necessary for most users, as the middle mouse button already does a paste.)

 

 

New Environment Variables:

 

CMDLINE2 - the original command line (before alias and variable expansion, redirection, compound commands, etc.).

 

 

New Internal Variables:

 

_HYPERV - returns 1 if TCC is running in a Hyper-V VM.

 

_POWERBATTERY - returns the battery % (0-100) when the POWERMONITOR condition is triggered.

 

_POWERDISPLAY - returns 0 if the primary monitor is powered off or 1 if it is on.

 

_POWERSCHEME - returns the power scheme in use when the POWERMONITOR condition is triggered.

 

_POWERSOURCE - returns the power source (AC or DC) when the POWERMONITOR condition is triggered.

 

_TASKDIALOG_BUTTON - the button pressed to exit TASKDIALOG.

 

_TASKDIALOG_RADIO - the selected radio button (if any) in TASKDIALOG.

 

_TASKDIALOG_VERIFY - returns 1 if the verify button was checked in TASKDIALOG.

 

_XEN - returns 1 if TCC is running in a Xen VM.

 

 

Updated Internal Variables:

 

_do_dirs - returns the value for the current DO loop (i.e., nested DO's each have their own _do_dirs).

 

_do_errors- returns the value for the current DO loop (i.e., nested DO's each have their own _do_errors).

 

_do_files- returns the value for the current DO loop (i.e., nested DO's each have their own _do_files).

 

_do_loop- returns the value for the current DO loop (i.e., nested DO's each have their own _do_loop).

 

 

Updated Variable Functions:

 

@EVAL - added support for scientific notation both in the input and output. For example:

 

@eval[1.6582E+8 *47]

@eval[1.6582E+8 *47=E] - the =E format tells @EVAL to output the results in scientific notation.

 

@FILEREAD - added support for UTF8 files (with BOM or UTF8 extended chars within the first 2K).

 

@GETDIR - now uses the Windows 7 / Windows 8 open file dialog.

 

@SHA1[[s,]filename] - added an optional first argument "s" to generate the hash on a string (in filename), not a file.

 

@SHA256[[s,]filename] - added an optional first argument "s" to generate the hash on a string (in filename), not a file.

 

@SHA384[[s,]filename] - added an optional first argument "s" to generate the hash on a string (in filename), not a file.

 

@SHA512[[s,]filename] - added an optional first argument "s" to generate the hash on a string (in filename), not a file.

 

@TRUENAME - a leading ~\ or ~/ will be interpreted as the current user's home directory.

 

 

New Variable Functions:

 

@EVERYTHING[filename[,cdfpw[,n]]] - calls Everything Search to return all matching filenames / directories (space delimited). The options are:

 

filename - the name to search for. If filename begins with a "::", the filename is treated as a regular expression

c - case sensitive search

d - only search for directories

f - only search for files

p - match path names

w - match whole word

n - maximum number of matches to return

 

@FILELOCK[filename] - returns the PIDs of the process(e)s with a lock on the specified file.

 

@PIDUSER[pid] - returns the user name for the specified process ID. (System processes return an empty string.)

 

 

Updated Commands:

 

7UNZIP

 

Added range and attribute selection to the command dialog.

 

CD

 

Fuzzy directory searches are much faster, and you no longer need to build the index (jpstree.idx) for NTFS drives.

 

Added support for Windows shell folders (for the current user). See CDD for the syntax and folder names.

 

CDD

 

Fuzzy directory searches are much faster, and you no longer need to build the index (jpstree.idx) for NTFS drives.

 

Added support for CDD to the Windows shell folders (for the current user). The syntax is:

 

CDD :foldername

 

where foldername can be:

 

AccountPictures        (Windows 8+)

AdminTools

ApplicationShortcuts        (Windows 8+)

CameraRoll        (Windows 8.1+)

CDBurning

CommonAdminTools

CommonOEMLinks

CommonPrograms

CommonStartMenu

CommonStartup

CommonTemplates

Contacts

Cookies

Desktop

DeviceMetadataStore

Documents

DocumentsLibrary

Downloads

Favorites

Fonts

GameTasks

History

ImplicitAppShortcuts

InternetCache

Libraries

Links

LocalAppData

LocalAppDataLow

LocalizedResourcesDir

Music

MusicLibrary

Nethood

OriginalImages

PhotoAlbums

PicturesLibrary

Pictures

Playlists

PrintHood

Profile

ProgramData

ProgramFiles

ProgramFilesX64

ProgramFilesX86

ProgramFilesCommon

ProgramFilesCommonX64

ProgramFilesCommonX86

Programs

Public

PublicDesktop

PublicDocuments

PublicDownloads

PublicGameTasks

PublicLibraries

PublicMusic

PublicPictures

PublicRingtones

PublicUserTiles        (Windows 8+)

PublicVideos

QuickLaunch

Recent

RecordedTVLibrary

ResourceDir

Ringtones

RoamingAppData

RoamedTileImages        (Windows 8+)

RoamingTiles        (Windows 8+)

SampleMusic

SamplePictures

SamplePlayLists

SampleVideos

SavedGames

Screenshots        (Windows 8+)

SearchHistory        (Windows 8.1+)

SearchTemplates

SendTo

SidebarDefaultParts

SidebarParts

SkyDrive        (Windows 8.1+)

SkyDriveCameraRoll        (Windows 8.1+)

SkyDriveDocuments        (Windows 8.1+)

SkyDrivePictures        (Windows 8.1+)

StartMenu

Startup

System

SystemX86

Templates

UserPinned

UserProfiles

UserProgramFiles

UserProgramFilesCommon

Videos

VideosLibrary

Windows

 

DO

 

LEAVE now supports variable arguments.

 

_do_dirs - returns the value for the current DO loop (i.e., nested DO's each have their own _do_dirs).

_do_errors- returns the value for the current DO loop (i.e., nested DO's each have their own _do_errors).

_do_files- returns the value for the current DO loop (i.e., nested DO's each have their own _do_files).

_do_loop- returns the value for the current DO loop (i.e., nested DO's each have their own _do_loop).

 

/D - Added support for Windows shell folders (for the current user). See CDD for the syntax and folder names.

 

EJECTMEDIA

 

Added support for ejecting removable USB drives.

 

EVERYTHING

 

EVERYTHING now has a command dialog.

 

Added range and attribute selection options.

 

/E - Display the Everything Search dialog. You can combine /E with the other EVERYTHING options (except /D and /F).

 

/O - Display the Everything Search options dialog.

 

/S - Sort results by path, then file name. (This can take several seconds with a large number of search results.)

 

FOR

 

/R - Added support for Windows shell folders (for the current user). See CDD for the syntax and folder names.

 

HEAD

 

Added support for UTF8 files (with BOM or UTF8 extended chars within the first 2K).

 

MD

 

Changed /Ne to only suppress all non-fatal errors (such as ERROR_ALREADY_EXISTS).

 

PLAYAVI

 

Added support for wildcards.

 

Added support for @file lists.

 

PLAYSOUND

 

Added support for wildcards.

 

Added support for @file lists.

 

PROMPT

 

$= - display the elapsed time for the prior command.

 

PUSHD

 

Added support for Windows shell folders (for the current user). See CDD for the syntax and folder names.

 

TAIL

 

Added support for UTF8 files (with BOM or UTF8 extended chars within the first 2K).

 

TAR

 

Added range and attribute selection to the command dialog.

 

TASKBAR

 

LOGOFF - display the logoff dialog.

 

TASKDIALOG

 

/A"Details" - the TASKDIALOG will have a button that you can click to expand the dialog and view the text specified in "Details".

 

/B"Button text" - Text to use for custom buttons. If you specify one or more /C arguments, TASKDIALOG will not display any of the default buttons. TASKDIALOG will return the button ID of the button pushed in the command variable %_taskdialog_button. TASKDIALOG will number the custom button ID's beginning at 1000.

 

/C - Check the verification checkbox at TASKDIALOG startup. (The checkbox defaults to unchecked.)

 

/F[ISW]"Text" - display footer text with an optional icon:

 

I - information

S - error

W - warning

 

/H - enable hyperlinks embedded in the additional info (/A) text, the footer (/F) text, and the main instruction text. Hyperlinks are created with an <a> HTML tab. For example:

 

/A"This is a hyperlink: <a href=^"https://jpsoft.com/^">Full details about Take Command 18.0</a>"

 

/L - Convert the buttons defined by /B into command links. A command link is a bigger button that has an icon and optionally a second smaller line of text. (To display a second line, append a ^n to the /B argument, followed by the text for the second line.)

 

/R"Button text" - Display radio buttons. The selected button will be returned in the command variable %_taskdialog_radio. TASKDIALOG will number the custom radio button ID's beginning at 2000.

 

/V"Text" - Display a verification checkbox. If the box is checked, the command variable %_taskdialog_verify will be set when TASKDIALOG exits.

 

/X - the dialog can be closed using Alt-F4, Escape, and the title bar's close button even if no cancel button is specified.

 

TASKLIST

 

/U - Display the user name for each process (system processes return an empty string).

 

/U"owner" - Display only the processes for specified owner.

 

/X - Display PIDs in hex.

 

/Z - Display parent PIDs in the second column.

 

TITLE

 

If you do not specify a new title, TITLE will display the existing console title.

 

TPIPE

 

Sorting is much faster.

 

Much faster processing of filters that match against a list of patterns.

 

Open file on completion now uses the default editor if no file association is found.

 

Upgraded PDF component.

 

Updated Perl regular expression component.

 

Hidden worksheets are now ignored by the Excel to Text filter.

 

TPIPE has a number of new options:

 

/input="filename"[,Subfolders[,Action]] (You can specify multiple "/input=..." statements.)

filename - the filename, folder, or wildcard

Subfolders - how many subfolders to include (default 0):

0 - no subfolders

1 to 254 - subfolder(s)

255 - all subfolders

Action - the action to take (default 1):

1 - include the files

2 - exclude the files

3 - ignore the files

 

/inputbinary=action,sample

Action (default 0):

0 - Binary files are processed

1 - Binary files are skipped

2 - Binary files are confirmed before processing

Sample - the sample size to use for identifying binary files (default 255)

 

/inputpromptRO=n - if 1, prompt for read-only input files.

 

/inputstring=... - Process the string (as if it were in a file) and return the result.

 

/logappend=n - if 1, append to the log file.

 

/outputappend=n - if 1, appends to the output file.

 

/outputretaindate=n - if 1, retains the existing file date on the output file.

 

/sort - new sort types:

6 - Sort by date and time

7 - Sort by date

8 - Sort by time

 

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

ExcludeDelimiter - whether or not to apply subfilters to each CSV or Tab field individually, or to the fields as one string value. Defaults to 0.

ExcludeQuotes - whether or not to include the CSV quotes that may surround the field when passing the field to the subfilter. Defaults to 1.

 

/split=type,SplitSize,SplitChar,SplitCharPos,SplitCharCount,SplitLines,SplitFilename[,FirstFileNumber[,PreventOverload]]

FirstFileNumber - the number of the first file. Defaults to 0.

PreventOverload - if 1, don't create more than 10,000 files in one folder. Defaults to 0.

 

TRUENAME

 

A leading ~\ or ~/ will be interpreted as the current user's home directory.

 

TYPE

 

Added support for UTF8 files (with BOM or UTF8 extended chars within the first 2K).

 

UNTAR

 

Added range and attribute selection to the command dialog.

 

UNZIP

 

Added range and attribute selection to the command dialog.

 

WHICH

 

WHICH will now identify plugin variables, internal variables and variable functions.

 

A leading * will now skip the alias test. (i.e., if "dir" is an alias, "*dir" will return the internal command.)

 

 

New Commands:

 

COPYDIR - copy a directory tree to a new location. The syntax is:

 

COPYDIR source destination

 

Both source and destination are directory names. If destination does not exist, COPYDIR will create destination and copy source to destination. If destination already exists, COPYDIR will append the last subdirectory name in source to destination, create the new subdirectory, and copy source to destination.

 

FILELOCK - returns a list of the processes with a lock on the specified file, and optionally close them to free the file. The syntax is:

 

FILELOCK [/C /F] filename

 

/C(lose process) - requests the process(es) to close.

/F(orce close) - like TASKEND /F, forces the process(es) to be closed.

 

JUMPLIST - create a custom task jumplist for Take Command (Windows 7+ only). The syntax is:

 

JUMPLIST [/C /D /S] "title" "arguments"

 

/C - commit the changes

 

/D - delete an existing task list

 

/S - add separator line

 

"title" - title to use in the task list

 

"arguments" - command and arguments to pass to Take Command. (The command will be prefaced with a /C before it is passed to Take Command, so it will be started in a new tab window.)

 

To create a custom task list, you need to call JUMPLIST for each command, and then a final time with the /C option.

 

MOUNTISO - mounts an ISO image as a disk drive (Windows 8+ only). The syntax is:

 

MOUNTISO [d:\ | d:\path\] image

 

d:\ - the optional drive letter to use. If you don't specify a drive or mount path, Windows will automatically assign one.

image - the ISO file to mount.

 

d:\path\ - the mount path to use.

 

MOVEDIR - move a directory tree to a new location. The syntax is:

 

MOVEDIR source destination

 

Both source and destination are directory names. If destination does not exist, MOVEDIR will create destination and move source to destination. If destination already exists, MOVEDIR will append the last subdirectory name in source to destination, create the new subdirectory, and move source to destination.

 

POWERMONITOR - Monitor power scheme change, battery power, AC / DC switch, system suspend, and system resume. The syntax is:

 

POWERMONITOR [/c [action]]

POWERMONITOR [Battery | AC | DC | Scheme | Display | Resume | Suspend] [n | FOREVER] command

 

Note that Windows will send an immediate notification for the current scheme, AC/DC, and battery.

 

POWERMONITOR will set environment variables when the condition is triggered:

 

_POWERBATTERY - returns the battery % (0-100).

_POWERSOURCE - returns the power source (AC or DC).

_POWERDISPLAY - returns 0 if the primary monitor is powered off or 1 if it is on.

_POWERSCHEME - returns the power scheme in use:

0 - Power Saver

1 - Maximum Performance

2 - Balanced

3 - Unknown

 

UNMOUNTISO - unmounts an ISO image previously mounted with MOUNTISO (Windows 8+ only). The syntax is:

 

UNMOUNTISO [d:\ | d:\path\]