Jump to content

cmd.exe

From Wikipedia, the free encyclopedia
(Redirected fromCommand Prompt)

Command Prompt (cmd.exe)
Other namesWindows Command Processor
Developer(s)Microsoft,IBM,ReactOS contributors
Initial releaseDecember 1987;36 years ago(1987-12)
Operating system
PlatformIA-32,x86-64,ARM(and historicallyDEC Alpha,MIPS,PowerPC,andItanium)
PredecessorCOMMAND.COM
TypeCommand-line interpreter

Command Prompt,also known ascmd.exeorcmd,is the defaultcommand-line interpreterfor theOS/2,[1]eComStation,ArcaOS,Microsoft Windows(Windows NT familyandWindows CE family), andReactOS[2]operating systems. OnWindows CE.NET 4.2,[3]Windows CE 5.0[4]andWindows Embedded CE 6.0[5]it is referred to as theCommand Processor Shell.Its implementations differ between operating systems, but the behavior and basic set of commands are consistent.cmd.exeis the counterpart ofCOMMAND.COMinDOSandWindows 9xsystems, and analogous to theUnix shellsused onUnix-likesystems. The initial version ofcmd.exeforWindows NTwas developed by Therese Stowell.[6]Windows CE 2.11was the first embedded Windows release to support a console and a Windows CE version ofcmd.exe.[7]The ReactOS implementation ofcmd.exeis derived from FreeCOM, theFreeDOScommand line interpreter.[2]

Operation

[edit]

cmd.exeinteracts with the user through acommand-line interface.On Windows, this interface is implemented through theWin32 console.cmd.exemay take advantage of features available to native programs of its own platform. For example, on OS/2 and Windows, it can use realpipesin command pipelines, allowing both sides of the pipeline to run concurrently. As a result, it is possible to redirect thestandard error stream.(COMMAND.COMuses 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 Windowscmd.exe,each command must complete successfully for the following commands to execute. For example:

C:\>CommandA&&CommandB&&CommandC

[9]


In the above example,CommandBwill only execute ifCommandAcompletes successfully, and the execution ofCommandCdepends on the successful completion ofCommandB.To process subsequent commands even if the previous command produces an error, the command separator&should be used.[10]For example:

C:\>CommandA&CommandB&CommandC

OnWindows XPor later, the maximum length of the string that can be used at the command prompt is 8191 (213-1) characters. On earlier versions, such asWindows 2000orWindows NT 4.0,the maximum length of the string is 2047 (211-1) characters. This limit includes the command line, individualenvironment variablesthat are inherited by otherprocesses,and all environment variable expansions.[11]

Quotation marks are required for the followingspecial characters:[8]

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

and white space.

Internal commands

[edit]

OS/2

[edit]
OS/2 Window (cmd.exe) onMicrosoft OS/2Version 1.3

The following is a list of the Microsoft OS/2internalcmd.execommands:[12]

Windows NT family

[edit]
cmd.exe onWindows 11

The following list of internal commands is supported bycmd.exeonWindows NTand later:[13]

Windows CE

[edit]
Pocket CMD v 3.0 (cmd.exe) onWindows CE 3.0

The following list of commands is supported bycmd.exeon Windows CE.NET 4.2,[14]Windows CE 5.0[15]and Windows Embedded CE 6.0:[16]

  • 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, thenetcommand is available as an external command stored in\Windows\net.exe.

ReactOS

[edit]
Command Prompt (cmd.exe) onReactOS

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

[edit]

On Windows,cmd.exeis mostly compatible withCOMMAND.COMbut provides the following extensions over it:

  • More detailed error messages than the blanket "Bad command or file name"(in the case of malformed commands) ofCOMMAND.COM.In OS/2, errors are reported in the chosen language of the system, their text being taken from the system message files. TheHELPcommand can then be issued with the error message number to obtain further information.
  • Supports using of arrow keys to scroll through command history. (Under DOS this function was only available underDR DOS(throughHISTORY) and later via an external component calledDOSKEY.)
  • Addsrotating command-line completionfor file and folder paths, where the user can cycle through results for the prefix using theTab,andShift+Tab ↹for reverse direction.
  • Treats thecaretcharacter (^) as theescape character;the character following it is to be taken literally. There are special characters incmd.exeandCOMMAND.COMthat are meant to alter the behavior of the command line processor. The caret character forces the command line processor to interpret them literally.
  • Supports delayed variable expansion withSETLOCAL EnableDelayedExpansion,allowing values of variables to be calculated at runtime instead of during parsing of script before execution (Windows 2000 and later), fi xing DOS idioms that made usingcontrol structureshard and complex.[17]The extensions can be disabled, providing a stricter compatibility mode.

Internal commands have also been improved:

  • TheDELTREEcommand was merged into theRDcommand, as part of its/Sswitch.
  • SetLocalandEndLocalcommands limit the scope of changes to the environment. Changes made to the command line environment afterSetLocalcommands are local to thebatch file.EndLocalcommand restores the previous settings.[18]
  • TheCallcommand allows subroutines within batch file. TheCallcommand inCOMMAND.COMonly supports calling external batch files.
  • File name parser extensions to theSetcommand are comparable withC shell.[further explanation needed]
  • TheSetcommand can performexpression evaluation.
  • An expansion of theForcommand supports parsing files and arbitrary sets in addition to file names.
  • The newPushDandPopDcommands provide access past navigated paths similar to "forward" and "back" buttons in a web browser orFile Explorer.
  • The conditionalIFcommand can performcase-insensitivecomparisons and numeric equality and inequality comparisons in addition to case-sensitive string comparisons. (This was available in DR-DOS, but not inPC DOSorMS-DOS.)

See also

[edit]

References

[edit]
  1. ^"Notes on using the default OS/2 command processor (CMD.EXE)".tavi.co.uk.
  2. ^abc"reactos/reactos".GitHub.December 4, 2021.
  3. ^"Command Processor Shell (Windows CE.NET 4.2)".Microsoft Docs.June 30, 2006.Archivedfrom the original on August 31, 2022.
  4. ^"Command Processor Shell (Windows CE 5.0)".Microsoft Docs.September 14, 2012.Archivedfrom the original on August 28, 2022.
  5. ^"Command Processor Shell (Windows Embedded CE 6.0)".Microsoft Docs.2012.Archivedfrom 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.ISBN0-02-935671-7.
  7. ^Douglas McConnaughey Boling (2001).Programming Microsoft Windows CE(2nd ed.).Microsoft Press.ISBN978-0735614437.
  8. ^ab"cmd".Microsoft Learn.September 12, 2023.Archivedfrom the original on November 21, 2023.
  9. ^[Ambala "This is good for all" ].{{cite web}}:Check|url=value (help)CS1 maint: url-status (link)
  10. ^"Command Redirection, Pipes - Windows CMD - SS64".ss64.RetrievedSeptember 23,2021.
  11. ^Command prompt (Cmd.exe) command-line string limitation
  12. ^Microsoft Operating System/2 User's Reference(PDF).Microsoft.1987.
  13. ^Hill, Tim (1998).Windows NT Shell Scripting.Macmillan Technical Publishing.ISBN978-1578700479.
  14. ^"Command Processor Commands (Windows CE.NET 4.2)".Microsoft Docs.June 30, 2006.Archivedfrom the original on August 31, 2022.
  15. ^"Command Processor Commands (Windows CE 5.0)".Microsoft Docs.September 14, 2012.Archivedfrom the original on August 31, 2022.
  16. ^"Command Processor Commands (Windows Embedded CE 6.0)".Microsoft Docs.January 5, 2012.Archivedfrom the original on September 6, 2022.
  17. ^"Windows 2000 delayed environment variable expansion".Windows IT Pro.Archived fromthe originalon July 13, 2015.RetrievedJuly 13,2015.
  18. ^"Setlocal".TechNet.Microsoft.September 11, 2009.RetrievedJanuary 13,2015.

Further reading

[edit]
[edit]