Cmd.exe

Last updated

Command Prompt (cmd.exe)
Other namesWindows Command Processor
Developer(s) Microsoft, IBM, ReactOS contributors
Initial releaseDecember 1987;36 years ago (1987-12)
Operating system
Platform IA-32, x86-64, ARM (and historically DEC Alpha, MIPS, PowerPC, and Itanium)
Predecessor COMMAND.COM
Type Command-line interpreter

Command Prompt, also known as cmd.exe or cmd, is the default command-line interpreter for the OS/2, [1] eComStation, ArcaOS, Microsoft Windows (Windows NT family and Windows CE family), and ReactOS [2] operating systems. On Windows CE .NET 4.2, [3] Windows CE 5.0 [4] and Windows Embedded CE 6.0 [5] it is referred to as the Command Processor Shell. Its implementations differ between operating systems, but the behavior and basic set of commands are consistent. cmd.exe is the counterpart of COMMAND.COM in DOS and Windows 9x systems, and analogous to the Unix shells used on Unix-like systems. The initial version of cmd.exe for Windows NT was developed by Therese Stowell. [6] Windows CE 2.11 was the first embedded Windows release to support a console and a Windows CE version of cmd.exe. [7] The ReactOS implementation of cmd.exe is derived from FreeCOM, the FreeDOS command line interpreter. [2]

Contents

Operation

cmd.exe interacts with the user through a command-line interface. On Windows, this interface is implemented through the Win32 console. cmd.exe may take advantage of features available to native programs of its own platform. For example, on OS/2 and Windows, it 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.)

Multiple commands can be processed in a single command line using the command separator &&. [8]

When using this separator in the Windows cmd.exe, each command must complete successfully for the following commands to execute. For example:

C:\>CommandA && CommandB && CommandC 

In the above example, CommandB will only execute if CommandA completes successfully, and the execution of CommandC depends on the successful completion of CommandB. To process subsequent commands even if the previous command produces an error, the command separator & should be used. [9] For example:

C:\>CommandA & CommandB & CommandC 

On Windows XP or later, the maximum length of the string that can be used at the command prompt is 8191 (213-1) characters. On earlier versions, such as Windows 2000 or Windows NT 4.0, the maximum length of the string is 2047 (211-1) characters. This limit includes the command line, individual environment variables that are inherited by other processes, and all environment variable expansions. [10]

Quotation marks are required for the following special characters: [8]

& < > [ ] { } ^ = ; ! ' + , ` ~

and white space.

Internal commands

OS/2

OS/2 Window (cmd.exe) on Microsoft OS/2 Version 1.3 Microsoft OS 2 Version 1.3 cmd.exe OS 2 Window 640x373.png
OS/2 Window (cmd.exe) on Microsoft OS/2 Version 1.3

The following is a list of the Microsoft OS/2 internal cmd.exe commands: [11]

Windows NT family

cmd.exe on Windows 11 Windows11Terminal uk.png
cmd.exe on Windows 11

The following list of internal commands is supported by cmd.exe on Windows NT and later: [12]

Windows CE

Pocket CMD v 3.0 (cmd.exe) on Windows CE 3.0 Microsoft Windows CE Version 3.0 (Build 126) cmd.exe Command Prompt 800x574.png
Pocket CMD v 3.0 (cmd.exe) on Windows CE 3.0

The following list of commands is supported by cmd.exe on Windows CE .NET 4.2, [13] Windows CE 5.0 [14] and Windows Embedded CE 6.0: [15]

  • attrib
  • call
  • cd
  • chdir
  • cls
  • copy
  • date
  • del
  • dir
  • echo
  • erase
  • exit
  • goto
  • help
  • if
  • md
  • mkdir
  • move
  • path
  • pause
  • prompt
  • pwd
  • rd
  • rem
  • ren
  • rename
  • rmdir
  • set
  • shift
  • start
  • time
  • title
  • type

In addition, the net command is available as an external command stored in \Windows\net.exe.

ReactOS

Command Prompt (cmd.exe) on ReactOS ReactOS-0.4.13 cmd.exe Command Prompt 667x434.png
Command Prompt (cmd.exe) on ReactOS

The ReactOS implementation includes the following internal commands: [2]

  •  ?
  • alias
  • assoc
  • beep
  • call
  • cd
  • chdir
  • choice
  • cls
  • color
  • copy
  • ctty
  • date
  • del
  • delete
  • delay
  • dir
  • dirs
  • echo
  • echos
  • echoerr
  • echoserr
  • endlocal
  • erase
  • exit
  • for
  • free
  • goto
  • history
  • if
  • memory
  • md
  • mkdir
  • mklink
  • move
  • path
  • pause
  • popd
  • prompt
  • pushd
  • rd
  • rmdir
  • rem
  • ren
  • rename
  • replace
  • screen
  • set
  • setlocal
  • shift
  • start
  • time
  • timer
  • title
  • type
  • ver
  • verify
  • vol

Comparison with COMMAND.COM

On Windows, cmd.exe is mostly compatible with COMMAND.COM but provides the following extensions over it:

Internal commands have also been improved:

See also

Related Research Articles

<span class="mw-page-title-main">COMMAND.COM</span> Default command line for MS-DOS and Windows 9x

COMMAND.COM is the default command-line interpreter for MS-DOS, Windows 95, Windows 98 and Windows Me. In the case of DOS, it is the default user interface as well. It has an additional role as the usual first program run after boot. As a shell, COMMAND.COM has two distinct modes of operation: interactive mode and batch mode. Internal commands are commands stored directly inside the COMMAND.COM binary; thus, they are always available, but can only be executed directly from the command interpreter.

cd (command) Computer command in various operating systems

The cd command, also known as chdir, is a command-line shell command used to change the current working directory in various operating systems. It can be used in shell scripts and batch files.

In computing, a command is a directive to a computer program to perform a specific task. It may be issued via a command-line interface or as input to a network service as part of a network protocol, or as an event triggered in a graphical user interface.

Cabinet is an archive-file format for Microsoft Windows that supports lossless data compression and embedded digital certificates used for maintaining archive integrity. Cabinet files have .cab filename extensions and are recognized by their first four bytes MSCF. Cabinet files were known originally as Diamond files.

An environment variable is a user-definable value that can affect the way running processes will behave on a computer. Environment variables are part of the environment in which a process runs. For example, a running process can query the value of the TEMP environment variable to discover a suitable location to store temporary files, or the HOME or USERPROFILE variable to find the directory structure owned by the user running the process.

In computing, rmdir is a command which will remove an empty directory on various operating systems.

<span class="mw-page-title-main">PTS-DOS</span> Computer operating system for x86 processors

PTS-DOS is a disk operating system, a DOS clone, developed in Russia by PhysTechSoft and Paragon Technology Systems.

AUTOEXEC.BAT is a system file that was originally on DOS-type operating systems. It is a plain-text batch file in the root directory of the boot device. The name of the file is an abbreviation of "automatic execution", which describes its function in automatically executing commands on system startup; the filename was coined in response to the 8.3 filename limitations of the FAT file system family.

<span class="mw-page-title-main">Recovery Console</span> Microsoft Windows feature

The Recovery Console is a feature of the Windows 2000, Windows XP and Windows Server 2003 operating systems. It provides the means for administrators to perform a limited range of tasks using a command-line interface.

A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain any command the interpreter accepts interactively and use constructs that enable conditional branching and looping within the batch file, such as IF, FOR, and GOTO labels. The term "batch" is from batch processing, meaning "non-interactive execution", though a batch file might not process a batch of multiple data.

In computing, pushd and popd are a pair of commands which allow users to quickly switch between the current and previous directory when using the command line. When called, they use a directory stack to sequentially save and retrieve directories visited by the user.

help (command) Command in various command line shells

In computing, help is a command in various command line shells such as COMMAND.COM, cmd.exe, Bash, qshell, 4DOS/4NT, Windows PowerShell, Singularity shell, Python, MATLAB and GNU Octave. It provides online information about available commands and the shell environment.

choice (command)

In computing, choice is a command that allows for batch files to prompt the user to select one item from a set of single-character choices. It is available in a number of operating system command-line shells.

title (command) Command of command line interpreters

In computing, title is a command in various command-line interpreters (shells) on Microsoft Windows and ReactOS that changes the title for the graphical terminal emulator window. The command is also used within DFS and ADFS to change the title of the disc in the current drive.

start (command) Shell command

In computing, start is a command of the IBM OS/2, Microsoft Windows and ReactOS command-line interpreter cmd.exe to start programs or batch files or to open files or directories using the default program. start is not available as a standalone program. The underlying Win32 API is ShellExecute.

net (command)

In computing, net is a command in IBM OS/2, Microsoft Windows, ReactOS and Greentea OS used to manage and configure the operating system from the command-line. It is also part of the IBM PC Network Program for DOS.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a computer program by inputting lines of text called command-lines. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternative to the non-interactive interface available with punched cards.

In computing, ftype is a command-line utility on Microsoft Windows that is used to display or change the link between a file type and an executable program.

In computing, dpath is an internal cmd.exe command on IBM OS/2 and Microsoft Windows that allows using a set of files with the TYPE command and with input redirection as if they are in the current directory. On Windows it is undocumented and deprecated. dpath differs from the append command in the way it operates. dpath informs programs what directories they should search in order to find computer files. It is then up to the applications to recognize %DPATH%. Using the append command on the other side, programs are able to find files without recognizing that the command is in effect.

References

  1. "Notes on using the default OS/2 command processor (CMD.EXE)". www.tavi.co.uk.
  2. 1 2 3 "reactos/reactos". GitHub. December 4, 2021.
  3. "Command Processor Shell (Windows CE .NET 4.2)". Microsoft Docs. June 30, 2006. Archived from the original on August 31, 2022.
  4. "Command Processor Shell (Windows CE 5.0)". Microsoft Docs. September 14, 2012. Archived from the original on August 28, 2022.
  5. "Command Processor Shell (Windows Embedded CE 6.0)". Microsoft Docs. 2012. Archived from the original on September 5, 2022.
  6. Zachary, G. Pascal (1994). Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft . The Free Press. ISBN   0-02-935671-7.
  7. Douglas McConnaughey Boling (2001). Programming Microsoft Windows CE (2nd ed.). Microsoft Press. ISBN   978-0735614437.
  8. 1 2 "cmd". Microsoft Learn. September 12, 2023. Archived from the original on November 21, 2023.
  9. "Command Redirection, Pipes - Windows CMD - SS64.com". ss64.com. Retrieved September 23, 2021.
  10. Command prompt (Cmd.exe) command-line string limitation
  11. Microsoft Operating System/2 User's Reference (PDF). Microsoft. 1987.
  12. Hill, Tim (1998). Windows NT Shell Scripting . Macmillan Technical Publishing. ISBN   978-1578700479.
  13. "Command Processor Commands (Windows CE .NET 4.2)". Microsoft Docs. June 30, 2006. Archived from the original on August 31, 2022.
  14. "Command Processor Commands (Windows CE 5.0)". Microsoft Docs. September 14, 2012. Archived from the original on August 31, 2022.
  15. "Command Processor Commands (Windows Embedded CE 6.0)". Microsoft Docs. January 5, 2012. Archived from the original on September 6, 2022.
  16. "Windows 2000 delayed environment variable expansion". Windows IT Pro. Archived from the original on July 13, 2015. Retrieved July 13, 2015.
  17. "Setlocal". TechNet . Microsoft. September 11, 2009. Retrieved January 13, 2015.

Further reading