[OpenAFS] [Fwd: 4NT 7.0 / Take Command 7.0 Public Beta]

Jeffrey Altman jaltman@secure-endpoints.com
Mon, 31 Oct 2005 15:55:49 -0500

This is a multi-part message in MIME format.
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

JPSoftware has begun its public beta for the next release of 4NT and
TCMD replacement command shells for Windows 2000, XP and 2003.  I am
forwarding the announcement to the OpenAFS community because of their
incorporation of special features just for OpenAFS users.

Some highlights:

 * 4NT/TCMD can recognize when a path is in AFS

 * 4NT/TCMD can accept paths in Unix format and will convert them to
   Windows UNC path format.

 * FREE SPACE calculations are performed using the full path and not
   just the root of the file system.  As such, free space calculations
   report the free space of the quota/partition for the appropriate
   volume instead of a random hard coded value.

 * Several functions and variables are provided for use with the
   4NT/TCMD batch command language

If you are a Windows user, I highly recommend this product.  Take it
for a spin.

Jeffrey Altman

Content-Type: message/rfc822;
 name="4NT 7.0 / Take Command 7.0 Public Beta"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="4NT 7.0 / Take Command 7.0 Public Beta"

Return-Path: <rconn@jpsoft.com>
Received: from jpsoft.net ([]) by email.sparklist.com with SMTP (SparkLIST.com WIN32 version 5.1); Thu, 20 Oct 2005 13:54:45 -0700
Received: from gigabyte (38-118-53-222.baybroadband.net [] (may be forged))
	by jpsoft.net (8.12.11/8.12.9) with SMTP id j9KKpbtI040727
	for <jpsoft_support@email.sparklist.com>; Thu, 20 Oct 2005 14:51:38 -0600 (MDT)
From: "Rex Conn" <rconn@jpsoft.com>
To: "JP Software Support Forum" <jpsoft_support@email.sparklist.com>
Subject: 4NT 7.0 / Take Command 7.0 Public Beta
Date: Thu, 20 Oct 2005 16:51:34 -0400
MIME-Version: 1.0
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2527
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
Newsgroups: jpsoft_support
Path: jpsoft_support
Message-Id: <609282@jpsoft_support>

JP Software is pleased to announce the public beta of 4NT 7.00 and Take
Command 7.00.

The betas can be downloaded from our FTP server at:

    ftp://jpsoft.com/beta/4nt.exe - 4NT 7.0
    ftp://jpsoft.com/beta/tcmd.exe - Take Command 7.0

You can get the complete new features list at:


Please see README.TXT for details on installation and the bug reporting
procedure.  Note that the time for suggesting new features in 7.0 is long
past, though we're happy to hear your ideas for future versions.

Note that 7.0 is Unicode-only and will only install & run on Windows 2000 or
newer.  There will be no new ASCII versions, and 7.00 will not support
Windows 98, ME, or NT 4.

Since the last major release we've added over 300 new features, commands,
switches, variables, and other enhancements to 4NT and Take Command!  There
are too many new features to list here (for a complete list see "What's New"
in the help file or the FEATURES.TXT file), but here's a few of the 


 Added plugin support.  You can write your own internal variables,
   variable functions, and internal commands, put them in a dll, and
   4NT / TC will load them at startup.  (7.0 already has a number of
    plugins available that were written by beta testers!)

 Added support for calling over 330 TakeCmd.dll internal functions.
   (This is primarily for the benefit of plugin writers, but it's also
   possible to call these functions from external apps.)

 Added support for OpenAFS.

 Added internal support for Perl (Active Perl 5.8) and Ruby (1.8).

 Added support for non-standard FTP directory formats.

 FTP / FTPS / HTTP / HTTPS names no longer require double quotes
   unless they contain whitespace.

 Added support for ZoneId's.

 Date and Time ranges now support seconds.

 Added regular expression support via three variable functions (@REGEX,

 The implicit directory changes are a little smarter -- if you enter a
   directory name without a trailing \, the parser will change to that
   directory if no internal or external command of that name is found
   (before the UNKNOWN_CMD alias is executed).

Command Line Editing:

 You can now do filename completion (Tab/F9) for files in the PATH
   directories. (See the new CompletePaths .INI directive.)

 Variables can be expanded at the command line with the Ctrl-X key.
   (See VariableExpand if you want to remap it.)  This works the same
   as Ctrl-F does to expand aliases.

New .INI directives :

 CompletePaths=yes|NO - if set to YES, filename completion will search
   for all matching files in the PATH directories.

 DebuggerTransparency=[40-255] - set the default transparency level of
   the debugger windows.  You can also set it interactively with the
   slider control on the debugger window.

 DelayedExpansion=no|YES - enable CMD-style delayed expansion.  (This
   is the same as specifying /V on the 4NT startup line.)

 ExitFile=YES|no - if set to NO, don't attempt to execute 4EXIT (TCEXIT
   in Take Command) when exiting.

 NTFSDescriptions=yes|NO - use the Comments field in the NTFS
   SummaryInformation stream for each file to hold its description.

 Perl=NO|yes - if set, enables the internal Perl support.  (This can
   only be set at startup, not via the OPTION command.)

 RegularExpressions=type - set the type of regular expression syntax
   to use.

 Ruby=NO|yes - if set, enables the internal Ruby support.  (This can
   only be set at startup, not via the OPTION command.)

 SHChangeNotify=YES|no - if set to NO, don't notify the system shell
   when 4NT / TC change files or directories.

 StartupFile=YES|no - if set to NO, don't attempt to execute 4START
   (TCSTART in Take Command) at startup.

 Transparency (TCMD only) - set the default transparency level of the
   TCMD window.

 Wow64FsRedirection=YES|no (Windows 64 only) - if set to NO, will
   override the default Win64 behavior of remapping windows\system32
   calls to windows\SysWOW64.

New Internal Variables:

 %! - returns the last argument of the previous command.

 %_AFSWCELL - returns the OpenAFS workstation cell.

 %_DRIVES - returns a space-delimited list of the existing drives in
   the format "A: C: D: E: ..."

 %_DST - returns 1 if daylight savings time is in effect.

 %_EXIT (4NT) - reason for exiting 4NT (for 4EXIT.BTM)

 %_IDLETICKS - number of milliseconds since the last user input.

 %_IFTP - returns 1 if an IFTP session is active.

 %_IFTPS - returns 1 if an IFTP SSL session is active.

 %_OPENAFS - returns 1 if the OpenAFS service is active.

 %_OSBUILD - returns the Windows build number

 %_RUBYTYPE - returns the type of the value returned by the last @RUBY.

 %_RUBYVALUE - returns the value of the last @RUBY call.

 %_STDIN - returns 1 if STDIN points to the console; 0 if it's been

 %_STDOUT - returns 1 if STDOUT points to the console; 0 if it's been

 %_STDERR - returns 1 if STDERR points to the console; 0 if it's been

 %_STZN - name of time zone for standard time (i.e., "Eastern Standard

 %_STZO - offset in minutes from UTC for standard time in the current
   time zone.

 %_TZN - name of current time zone (i.e., "Eastern Daylight Time")

 %_TZO - offset in minutes from UTC for the current time zone

New Variable Functions:

 @AFSCELL[path] - display the OpenAFS cell name for the path.

 @AFSMOUNT[path] - returns the OpenAFS mount point for the pathname.

 @AFSPATH[path] - returns 1 if the path is in the OpenAFS file system.

 @AFSSYMLINK[path] - returns the OpenAFS symbolic link for the

 @AFSVOLID[path] - returns the OpenAFS volume ID for the path.

 @AFSVOLNAME[path] - returns the OpenAFS volume name for the path.

 @ASSOC[.xxx] - returns the file association for the specified extension.

 @AVERAGE[...] - returns the average of a list of numbers.

 @COMPARE[file1,file2] - returns 1 if the two files are identical, or 0
   if they differ.

 @COUNT[char,string] - returns the number of times "char" appears in

 @DRIVETYPE[drive] - return the type for the specified drive

 @FTYPE[xxx] - returns the open command string for the specified file

 @GROUP[server,group,user] - returns 1 if the user is a member of the
   specified group.

 @INODE[filename] - returns the inode (in hex) for the specified file.

 @JUNCTION[dir] - returns the directory referenced by the specified

 @LCS[string1,string2] - returns a pointer to the longest common
   sequence in string1 & string2.

 @LINKS[filename] - returns the number of links (NTFS only) for the
   specified file.

 @PERL[expression] - executes the specified Perl expression.

 @QUOTE[xxx] - double quote the argument if it contains any whitespace
   characters (if not already quoted).

 @REGEX[expression,string] - returns the number of matching groups in
   the string.

 @REGEXINDEX[expression,string] - returns the offset of the first
   regular expression match.

 @REGEXSUB[n,expression,string] - returns the "nth" matching group
   in the string.

 @REVERSE[string] - reverses the order of the characters in string.

 @RUBY[expression] - executes the specified Ruby expression.
 @SHA1[filename] - returns the SHA1 checksum of the specified file.

 @SHA256[filename] - returns the SHA2-256 checksum of the specified

 @SHA384[filename] - returns the SHA2-384 checksum of the specified

 @SHA512[filename] - returns the SHA2-512 checksum of the specified

 @SIMILAR[string1,string2] - returns a value (0 - 100) reflecting the
   similarity between the two strings.

 @SNAPSHOT[DESKTOP | window[,n]] - save the desktop or a specific
   window to the clipboard as a BMP.

 @SUMMARY[file,property[,value]] - read or set NTFS SummaryInformation
   data for the specified file.

 @UNQUOTE[xxx] - remove double quotes.

 @WINAPI[module,function[,integer | NULL | BUFFER | "string"] - call a
   Windows API function.

New Internal Commands:

 BREAKPOINT - if the batch debugger is active, this command sets a
   breakpoint on the current line, stopping a "Step Out" sequence.

 DEBUGSTRING - write a string to the system debugger.

 EJECTMEDIA - eject the removable media in the specified drive(s).

 JABBER - send IM's via the JABBER network.

 PLUGINS - load, unload, or display the current plugins.

 POSTMSG - post a message to a window.

 REXEC - allows remote execution of commands on any system with the
   rexec interface.

 RSHELL - allows remote execution of commands on any system with the
   rshell interface.

 TRANSIENT - toggle the shell's transient mode (i.e., started with
   "/C") off and on.

Modified Internal Commands:

 ? - will now display any plugin internal commands following the built-
   in internal commands.

 ACTIVATE - added an option to set the transparency level for a window.

 COPY - The /G option now displays the transfer rate (in KBytes/s)
   next to the % copied.  (This is useful when doing FTP, FTPS, HTTP,
   HTTPS, TFTP, OpenAFS, and some network copies; it will probably
   disappear too fast to be seen on local copies!)

 COPY - now supports multiple destinations.  The syntax is:

      COPY source1 source2 TO: target1 target2

 COPY - added support for delayed variable expansion (as in PDIR) for
   the target filename, and for recursion limits.

 DESCRIBE - you can now use the NTFS SummaryInformation stream to
   store your file descriptions.

 DO - the UNTIL DATETIME option now supports variables.

 FFIND - now supports regular expressions (but not for hex searching!).

 FOR - added new options:

    /D - emulate the CMD.EXE FOR /D flag (only show
     subdirectories, and exclude "." and "..")

    /T"..." - specify the delimiters to be used when parsing
     a string set.

 LIST - now supports regular expressions in the search string (but not
   for hex searching!)

 MKLNK - if there is only a single argument that is an existing
   junction, MKLNK will display the directory name that the junction
   is linked to.

 MKLNK - now supports wildcards in the source spec (hard links only).

 MKLNK - now supports attribute and range selection (hard links only).

 MKLNK - now copies file descriptions when creating hard links.

 MOVE - changed the default behavior when the (single) source and the
   target are subdirectory names to match Microsoft's MOVE behavior.

 MOVE - added support for delayed variable expansion (as in PDIR) for
   the target filename, and for recursion limits.

 MOVE - The /G option now displays the transfer rate (in KBytes/s)
   next to the % moved (only for moves to another drive).

 MSGBOX - added many new options

 ON - added a new option: ON ERRORLEVEL n

 PDIR - now supports multiple /(...) arguments.

 REBOOT - added new options:

  /H - hibernate
  /W - standby

 REN - added support for delayed variable expansion (as in PDIR) for
   the target filename.

 SENDMAIL - added new options for "reply-to", CC:, MD5 authentication,
    sensitivity, & sending a read receipt.

 TREE - added support for /A:... attribute selection, description
     display, and recursion limits.

 WHICH - added an option to search the PATH to return all matching

New Debugger Features:

 The debugger now has a Watch window, which allows you to monitor
    environment variables or to pause execution when a specified
    condition is met.

 The debugger window now includes a slider control on the status bar
    to control the transparency level of the debugger windows.   (If the
    debugger window is transparent, it sets the /N option in BDEBUGGER,
    and it will not be hidden when the batch file is executing a line.)

 The debugger windows will now "dock" on their outer edges.


I'd like to thank everyone who suggested new features.  If your
suggestion didn't make it into 7.0, don't despair -- we've begun
planning 8.0!

Rex Conn

JP Software Inc.
PO Box 328
Chestertown, MD  21620  USA

(410) 810-8818
(410) 810-0026 (fax)