|A component of Microsoft Windows|
Command Prompt in Windows 8
Command Prompt, also known as cmd.exe or cmd (after its executable file name), is the command-line interpreter on Windows NT, Windows CE, OS/2 and eComStation operating systems. It is the counterpart of COMMAND.COM in DOS and Windows 9x systems (where it is also called "MS-DOS Prompt"), or some of the Unix shells used on Unix-like systems. (More advanced Unix shells must be compared with Windows PowerShell, another command-line interpreter of Windows.)
The initial version of Command Prompt for Windows NT was developed by Therese Stowell.
Command Prompt interacts with the user through a command-line interface. In Microsoft Windows, this interface is implemented through Win32 console. Command Prompt may take advantage of features available to native programs of its own platform. For example, in OS/2, Command Prompt can use real pipes in command pipelines, allowing both sides of the pipeline to run concurrently. As a result, it is possible to redirect the standard error stream. (COMMAND.COM uses temporary files, and runs the two sides serially, one after the other.)
The OS/2 and the Windows NT versions of cmd.exe have more detailed error messages than the blanket "Bad command or file name" (in the case of malformed commands) of COMMAND.COM. In the OS/2 version of cmd.exe, errors are reported in the current language of the system, their text being taken from the system message files. The HELP command can then be issued with the error message number to obtain further information.
In Windows, Command Prompts is compatible with COMMAND.COM but provides the following extensions over it:
- Some old DOS commands are removed or have been changed; e.g. the functionality of DelTree was rolled into RD, as part of its /S switch. Command Prompt, however, still has a greater number of built-in commands.
- SetLocal/EndLocal commands limit the scope of changes to the environment. Changes made to the command line environment after SetLocal commands are local to the batch file. EndLocal command restores the previous settings.
- Internal Call command, allowing subroutines within batch file. Call command in COMMAND.COM only supports calling external batch files.
- File name parser extensions to the Set command are comparable with C shell.
- Expression-evaluation extensions are provided in the Set command.
- An expansion of the For command supports parsing files and arbitrary sets in addition to file names.
- Command Prompt supports using of arrow keys to scroll through command history. This function was only available to COMMAND.COM via an external component called DOSKEY.
- Path completion capabilities similar to tab completion of Bash is available.
- A directory stack is accessible with the PushD and PopD commands.
- The conditional IF command can perform case-insensitive comparisons and numeric equality and inequality comparisons in addition to case-sensitive string comparisons. This was available in DR-DOS (by Novell) but not in PC DOS (by IBM) or MS-DOS (by Microsoft).
- Caret character (^) became the escape character which indicates that the character following it is to be taken literally. There other escape characters in Command Prompt and COMMAND.COM (e.g. < or >) that are part of it syntax and, if specified without caret, can alter the behavior of their command.
- Windows 2000 adds delayed variable expansion, fixing DOS idioms that made using control structures hard and complex.[further explanation needed]
The extensions can be disabled, providing a stricter compatibility mode.
- 4OS2, an enhanced, but backwards-compatible replacement for CMD in OS/2
- Take Command Console (TCC), an enhanced, but backwards-compatible replacement for CMD in Windows NT
- Comparison of command shells
- List of DOS commands