COMMAND.COM

From Wikipedia, the free encyclopedia

COMMAND.COM is the name for the default operating system shell (or command line interpreter) for DOS and 16/32bits versions of Windows (95/98/98 SE/Me). It also has an additional role, as the first program run after boot, hence being responsible for setting up the system by running the AUTOEXEC.BAT configuration file, and being the ancestor of all processes.

Contents

[edit] Operating modes

As a shell, COMMAND.COM has two distinct modes of work. First is the interactive mode, in which the user types commands which are then executed immediately. The second is the batch mode, which executes a predefined sequence of commands stored as a text file with the extension .BAT. Its function as the default command interpreter is analogous to that of the Unix shells, although COMMAND.COM's functionality is considerably more limited than that of its Unix counterparts.

cmd.exe is COMMAND.COM's successor on Windows NT/2000/XP/2003 and OS/2. COMMAND.COM is also available on those systems to provide compatibility when running DOS applications. On NT systems, COMMAND.COM is run within the Virtual DOS Machine.

[edit] Notable internal commands

All commands are run only after the Enter key is pressed at the end of the line. COMMAND.COM is case-insensitive, meaning commands can be typed in either case and are all equivalent (so dir, DIR and DiR will all work in the same way).

[edit] Filesystem commands

In accordance with COMMAND.COM's main function as an operating system shell, it includes a number of built-in commands for working with files.

In order to run a program, simply type the name of its executable and then press "Enter" (it is not necessary to use the extension, e.g. nc.exe can be summoned simply as nc). In order to change the current working drive (see Drive letter assignment), type its letter followed by a colon (e.g. D:). Other filesystem commands include:

DIR 
Lists the files in the current directory
CD, CHDIR 
Changes the current working directory or displays the current directory.
COPY 
Copies one file to another (if the destination file already exists, MS-DOS asks whether to replace it). (See also XCOPY, an external command that could also copy directory trees)
REN, RENAME 
Renames a file or directory
DEL, ERASE 
Deletes a file. When used on a directory, deletes all files in that directory, but does not recurse or delete the directory itself.
MD, MKDIR 
Creates a new directory
RD, RMDIR 
Removes an empty directory
VOL 
Shows information about a volume
LABEL 
Show or change the label of a volume
VERIFY 
Enable or disable verification of writing for files
TYPE 
Display the content of a file on the console

[edit] Other commands

All commands from the interactive mode can be used in batch files; similarly, one can use batch-file commands directly on the COMMAND.COM command line, interactively. Therefore, it is impossible to separate the syntax to "interactive" or "batch" commands.

BREAK 
Controls the handling of program interruption with Ctrl+C.
CLS 
Clears the screen.
CHCP 
Displays or changes the current system code page.
CTTY 
Defines the device to use for input and output.
DATE 
Set the date of the system.
ECHO 
Toggles whether text is displayed (ECHO ON) or not (ECHO OFF). Also displays text on the screen (ECHO text).
LH, LOADHIGH 
Loads a program into upper memory.
LOCK 
Enables external programs to perform low-level disk access to a volume. (Windows 95/98/Me only)
PATH 
Displays or change the value of the PATH environment variable which controls the places where COMMAND.COM will search for executable files.
PAUSE 
Halts execution of the program and displays a message asking the user to press any key to continue.
PROMPT 
Displays or change the value of the PROMPT environment variable which controls the appearance of the prompt.
SET 
Sets the value of an environment variable ; Without arguments, shows all defined environment variables.
TIME 
Set the time of the system.
UNLOCK 
Disables low-level disk access. (Windows 95/98/Me only)
VER 
Displays the version of the operating system.

[edit] Undocumented commands

Some versions of MS-DOS COMMAND.COM recognized some internal commands which were not documented.

LFNFOR 
Enables or disables the return of long filenames by the FOR command. (Windows 95/98/Me only)
TRUENAME 
Display the "true name" of a file, by bypassing SUBST and ASSIGN filesystem mappings.

[edit] Control structures

Control structures are mostly used inside batch files, although they can also be used interactively.

:label 
Defines a target for GOTO.
FOR 
Iteration: repeats a command for each out of a specified set of files.
GOTO 
Moves execution to a specified label. Labels are specified at the beginning of a line, with a colon (:likethis).
REM 
comment: any text following this command is ignored
IF 
Conditional statement, allows to branch the program execution
CALL 
Pauses execution of one batch file, runs another, and returns to the old one and continues.
EXIT 
Exits from Command.com and return to the program which launched it.
SHIFT 
Replaces each of the command-line variables with the consequent one (e.g. %0 with %1, %1 with %2 etc. )

[edit] Variables

Batch files for COMMAND.COM can be said to have four kinds of variables:

  1. ERRORLEVEL - contains the return code of the last program to run that sets a value (an integer between 0 and 255). Most programs have a certain convention for their return codes (for instance, 0 for a successful execution). Some programs do not establish a new value, and thus the older value persists after they execute. The value of ERRORLEVEL is tested for range with the IF statement.
  2. Environment variables - these have the form %VARIABLE% and are associated with values with the SET statement. Most versions of COMMAND.COM will only expand environment variables in batch mode.
  3. Command-line parameters - these have the form %0, %1...%9, and initially contain the command name and the first nine command line parameters passed to the script (e.g., if the invoking command was "myscript.bat John Doe", then %0 is "myscript.bat", %1 is "John" and %2 is "Doe"). The parameters to the right of the ninth can be mapped into range by using the SHIFT statement.
  4. "For" variables - used by loops, have the format %%a when run in batch files. These variables are defined solely within a specific FOR statement, and iterate over a certain set of values defined in that FOR statement.

[edit] Redirection and piping

command < filename 
Redirect standard input from a file or device
command > filename 
Redirect standard output, overwriting target file if it exists.
command >> filename 
Redirect standard output, appending to target file if it exists.
command1 | command2 
Pipe standard output from command1 to standard input of command2

Because DOS is a single-tasking operating system, 'piping' is achieved by running commands sequentially, redirecting to and from a temporary file. COMMAND.COM makes no provision for redirecting the standard error channel.

[edit] Bugs/Limitations

The command line length, in interactive mode is limited to 128 characters. It always returns a true value upon executing a command.

[edit] Cultural references

"Loading COMMAND.COM" message can be seen on a HUD view of the Terminator and the internal viewport of Robocop when he reboots.

The COMMAND.COM is a position of authority in the show ReBoot.

command.com was a website with an image of a command prompt with the "dir" command being run. It was meant to trick users into thinking the contents of their "C:" drive were deleted. However, the resulting command incorrectly displayed the . & .. directories, which are never shown in the root of a drive.

[edit] See also

[edit] External links