Cmd.exe
![]() | |
其他名稱 | Windows命令處理器 |
---|---|
開發人員 | Microsoft , IBM ,ReactOS貢獻者 |
初始發行 | 1987年12月 |
作業系統 |
|
平台 | IA-32 , X86-64 , ARM (歷史上是DEC Alpha , MIPS , PowerPC和Itanium ) |
前任 | command.com |
類型 | 命令行解釋器 |
命令提示符,也稱為cmd.exe或cmd ,是OS/2 , EcomStation , Arcaos , Microsoft Windows ( Windows NT Family和Windows CE家族)和ReactOS操作系統的默認命令行解釋器。在Windows CE .NET 4.2 , Windows CE 5.0和Windows Embedded CE 6.0上,它稱為命令處理器外殼。其實現在操作系統之間有所不同,但是行為和基本命令集是一致的。 cmd.exe是DOS和Windows 9X系統中Command.com的對應物,並且類似於Unix樣系統上使用的Unix shell 。 Windows NT的CMD.EXE的初始版本是由Therese Stowell開發的。 Windows CE 2.11是第一個支持控制台和Windows CE版本的嵌入式Windows版本。 CMD.EXE的ReactOS實現源自FreeCom,FreeCom, FreeCom命令行解釋器。
手術
CMD.EXE通過命令行界面與用戶進行交互。在Windows上,該接口通過Win32控制台實現。 CMD.EXE可以利用其自己平台的本機程序可用的功能。例如,在OS/2和Windows上,它可以使用命令管道中的真實管道,從而允許管道的兩側同時運行。結果,可以重定向標準誤差流。 ( command.com使用臨時文件,並串行運行雙方,一個接一個地運行。)
可以使用命令分隔符&&在單個命令行中處理多個命令。
在Windows cmd.exe中使用此分隔符時,每個命令必須成功完成以下命令才能執行。例如:
C:\>CommandA && CommandB && CommandC
在上面的示例中,命令B僅在成功完成時才會執行,並且命令C的執行取決於成功完成命令b 。要處理後續命令,即使上一個命令產生錯誤,也應使用命令分離器。例如:
C:\>CommandA & CommandB & CommandC
在Windows XP或更高版本上,可以在命令提示符處使用的字符串的最大長度為8191個字符。在較早版本(例如Windows 2000或Windows NT 4.0)上,字符串的最大長度為2047個字符。此限制包括命令行,其他過程繼承的單個環境變量以及所有環境變量擴展。
以下特殊字符需要引號:
& < > [ ] { } ^ = ; ! ' + , ` ~ [white space]
內部命令
OS/2

以下是Microsoft OS/2內部CMD.exe命令的列表:
Windows NT家庭

下面的內部命令列表由Windows NT上的CMD.EXE支持:
Windows CE

Windows CE .NET 4.2,Windows CE 5.0和Windows Embedded CE 6.0上的CMD.EXE支持以下命令列表:
此外, NET命令可作為存儲在\ Windows \ net.exe中的外部命令。
反應

ReactOS實現包括以下內部命令:
與Command.com進行比較
在Windows上, cmd.exe與command.com大多兼容,但在其上提供以下擴展:
- 比Command.com的“糟糕命令或文件名”(對於錯誤的命令)更詳細的錯誤消息。在OS/2中,以系統選定的語言報告了錯誤,其文本是從系統消息文件中獲取的。然後可以使用錯誤消息編號發出幫助命令,以獲取更多信息。
- 支持使用箭頭鍵滾動命令歷史記錄。 (在DOS下,此功能僅在DR DOS (通過歷史)下可用,然後通過稱為Doskey的外部組件。)
- 為文件和文件夾路徑添加旋轉命令行的完成 選項卡↹ , ⇧shift + tab↹用於反向方向。
- 將倫名角色( ^ )視為逃生角色;跟隨它的角色將是從字面上拍攝的。 cmd.exe和command.com (例如“ < ”,“ > ”和“ |”)中有特殊字符,旨在改變命令行處理器的行為。插入性格迫使命令線處理器從字面上解釋它們。
- 支持延遲的變量擴展,啟用了啟用啟用
SETLOCAL EnableDelayedExpansion
,允許在執行前(Windows 2000及以後)在腳本解析時計算變量的值(Windows 2000和更高版本),修復了使用控制結構來製作的DOS成文,這些成語艱苦而復雜。可以禁用擴展名,從而提供更嚴格的兼容模式。
內部命令也得到了改善:
- Deltree命令被合併到RD命令中,作為其/S開關的一部分。
- setLocal和endlocal命令限制了對環境的更改範圍。在批處理文件的本地固定命令後,對命令行環境進行了更改。 endlocal命令還原以前的設置。
- 呼叫命令允許在批處理文件中進行子例程。 Command.com中的呼叫命令僅支持調用外部批處理文件。
- 文件名解析器擴展到設置命令與c shell可比。
- SET命令可以執行表達評估。
- FO命令的擴展還支持解析文件和任意集,除了文件名。
- 新的PUSHD和POPD命令提供了與Web瀏覽器或File Explorer中的“向前”和“ Back”按鈕類似的過去導航路徑。
- 條件如果命令可以執行案例不敏感的比較以及數字平等和不平等比較,則除了對病例敏感的字符串比較之外。 (這在DR-DOS中可用,但在PC DOS或MS-DOS中不可用。)