Q.
What is the difference between COMMAND and CMD DOS Virtual Machine in
Windows XP?
A. Windows XP includes TWO
command-line processors, CMD.EXE and COMMAND.COM. The second one, COMMAND.COM,
is a stripped-down version of the command processor from DOS. The Windows XP
version of COMMAND.COM is severely restricted in its capabilities (lacks long
filename support and many other features familiar from Windows 98SE), so it is
all-but-unusable.
Furthermore, it turns out that there are TWO ways to run CMD.EXE in Windows
XP, although this fact is not documented anywhere. CMD.EXE can be run from a
shortcut (a .lnk file, which is the way that the Command Prompt window is set
up "out-of-the-box" in Windows XP) or from a Program Information File (a .pif
file).
I have found the .pif file method for running CMD.EXE to be superior in most
respects. For one thing, the .pif file "Properties" dialog gives you control
of a lot more of the "compatibility" options. More importantly, however, most
of my DOS applications simply run better when CMD.EXE is invoked by a .pif
file. The most visible difference is in the colors within the Command Prompt
window. My favorite DOS-based source code editor, for example, displays with a
hideous green background color when run under a CMD.EXE shortcut, but runs
correctly (with a black background) when run under CMD.EXE invoked via a .pif
file. The DOS full-screen "edit" command has similar problems with colors when
run under a shortcut, but again runs correctly under a .pif file.
There are two minor annoyances, however, when running CMD.EXE from a .pif
file:
1. Any switches that
you specify in the "dir" command (such as "/w") are ignored.
The "dir" command uses
ONLY the options you have set in the environment via the "DIRCMD" variable.
2. If you are
sitting at a command prompt, not running a command or application, and you try
to terminate the window by clicking the "X" box in the upper right-hand corner
of the window frame, you get a "nag" dialog. The "exit" command does work
correctly, without the nag.