CMD.EXE is
windows NT/
2000/
XP's 32-bit command interpreter.
In order to add new features, and yet keep compatibility with
NT 3 and
windows 3.1, it was decided to use a completely new program, and keep command.com for running
batch files that expected to be running on earlier operating systems.
CMD.EXE is similar to the
windows 95 shell, in that it properly supports long filenames.
'
CD "My Music"' works fine in CMD.EXE, but under COMMAND.COM, you must know the short file name. NT doesn't use the same scheme for producing
short file names as
9X, and depending on how NT is set up, there might not even be one.
dir /x will show short filenames in command.com
Like in windows 95, CMD.EXE responds to
close requests properly. Clicking the close button on a CMD.EXE window will exit cleanly, while a COMMAND.COM window will ignore it, and NT will ask for permission to terminate the process.
CMD.EXE can resolve
UNC paths straight from the command-line with no hacks. '
c:\>\\server1\scripts\install.bat', for example. Windows 9x requires that a drive letter be inserted - '
c:\>c:\\server1\scripts\install.bat'. This behaviour is probably intended to add UNC support to legacy programs, as many DOS programs don't bother checking for
\\s in their paths. CMD.EXE can perform
tab completion of UNC paths once a
\\server\share has been typed in.
Improvements over 95 include features borrowed from unix
tab completion,
pushd,
findstr (a
GREP clone), improved scripting commands (FOR, SETLOCAL, &&, || etc.) and various NT-specific commands (CACLS, COMPACT, etc.).
For help with CMD.EXE commands, see 'command reference', and 'new features in Windows 2000, command differences' in windows help, or type 'help' on the
command line. See also:
tab completion for how to enable it under 2000.