COMMAND.COM

出自Local Chinese Wikipedia
跳至導覽 跳至搜尋

Template:NoteTA Template:Expert Template:Expand language 腳本錯誤:沒有「Infobox」這個模塊。腳本錯誤:沒有「Check for unknown parameters」這個模塊。

File:Microsoft Windows 95 Version 4.00.1111 command.com MS-DOS Prompt 492x259.png
command.com在Windows 95上的Windows控制台里運行(MS-DOS命令提示符)

COMMAND.COM是MS-DOSWindows 95Windows 98Windows 98SEWindows Me下默認的命令行解釋器。在DOS環境下,它也是默認用戶界面。它一般還是系統啟動後運行的第一個程序(即init),因此負責運行AUTOEXEC.BAT配置文件以設置系統環境,也是所有進程的父進程。

COMMAND.COM在OS/2Windows NT上的繼任者是cmd.exe。即便如此,COMMAND.COM在這些系統的IA-32版本上的DOS虛擬機中仍然可用。

文件名Template:Mono也被Template:Ill (DCP)——前東德公司VEB Robotron發行的MS-DOS變體使用。[1]

FreeDOS下與之兼容的命令處理程序有時也稱作FreeCom

COMMAND.COM是DOS程序。由COMMAND.COM啟動的程序都是DOS程序,調用DOS API與磁盤作業系統通信。

操作模式[編輯]

作為一個用戶界面,COMMAND.COM有兩種截然不同的操作模式。第一種是交互模式,用戶輸入的指令會被立即執行;第二種是批處理模式,負責執行存儲在名稱以.BAT結尾文本文件中的一組預定義命令。

腳本錯誤:沒有「anchor」這個模塊。內部命令[編輯]

內部命令是直接存儲於COMMAND.COM二進制文件中的命令。因此,它們一直可用,但只能直接執行於命令直譯器。

腳本錯誤:沒有「key」這個模塊。鍵在一行末尾按下後,所有命令才被執行。COMMAND.COM不區分大小寫,也就是說命令可以按照任意大小寫組合輸入。

腳本錯誤:沒有「ilh」這個模塊。
通過腳本錯誤:沒有「key」這個模塊。腳本錯誤:沒有「key」這個模塊。控制程序中斷。
腳本錯誤:沒有「ilh」這個模塊。
顯示或更改當前系統的代碼頁
CHDIR, CD
更改當前工作目錄或顯示當前處於的目錄。
CLS
清除屏幕顯示。
COPY
將一個文件複製到另一個位置(若目標文件已存在,MS-DOS會詢問是否替換)。(另請參見XCOPY,一個可以複製目錄樹的外部命令)
腳本錯誤:沒有「ilh」這個模塊。
定義輸入輸出所用的設備。
腳本錯誤:沒有「ilh」這個模塊。
顯示和設置系統日期。
DEL, ERASE
刪除一個文件。在對一個目錄操作時,僅刪除目錄下的所有文件。與之相對,外部命令command不僅刪除目錄下的全部子目錄及所有文件,也刪除目錄本身。
DIR
列出指定目錄下的文件。
ECHO
切換文本顯示開啟(Template:Codett) 或關閉(Template:Codett)。也用於在屏幕上顯示字符(Template:Codett)。
EXIT
退出COMMAND.COM並返回到啟動它的程序。
LFNFOR
開啟/關閉FOR命令返回長文件名的功能(Windows 9x)。
腳本錯誤:沒有「ilh」這個模塊。
將一個程序載入內存的高地址區域(相當於DR-DOSTemplate:Codett)。
LOCK
允許外部程序執行低層磁盤訪問(僅MS-DOS 7.1Windows 9x)。
MKDIR,MD
新建一個目錄。
PATH
顯示或更改控制COMMAND.COM查找可執行文件位置的PATH環境變量值。
腳本錯誤:沒有「ilh」這個模塊。
顯示或更改控制命令行外觀的PROMPT環境變量值。
RENAME, REN
重命名一個文件或目錄。
RMDIR, RD
刪除一個空目錄。
SET
設置一個環境變量的值;無參數時,顯示全部已定義的環境變量。
腳本錯誤:沒有「ilh」這個模塊。
顯示和設置系統時間。
腳本錯誤:沒有「ilh」這個模塊。
Display the fully expanded physical name of a file, resolving ASSIGN, JOIN and SUBST logical filesystem mappings.[2]
TYPE
在控制台上顯示文件內容。
腳本錯誤:沒有「ilh」這個模塊。
關閉低層磁盤訪問(僅MS-DOS 7.1和Windows 9x)。
VER
顯示作業系統版本。
腳本錯誤:沒有「ilh」這個模塊。
開啟/關閉文件寫入驗證。
腳本錯誤:沒有「ilh」這個模塊。
顯示卷宗的信息。

批處理命令[編輯]

控制結構多用於批處理文件中,即使也可以在交互模式下使用。[3][2]

:label
定義GOTO的目標。
CALL
執行另一個批處理文件,然後返回到原文件並繼續。
FOR
迭代:為每一個特定組的文件重複一個命令。
GOTO
將執行過程強行跳轉到一個特定標籤。標籤在一行的開始處指定,以冒號開始(Template:Codett)。
IF
條件語句,建立程序分支。
PAUSE
暫停程序執行,向用戶顯示消息「按任意鍵繼續」。
REM
註釋:此命令後所有文本被忽略。
SHIFT
將每個可換位參數(Replacement parameters)以其後一個替代(即用Template:Codett替代Template:Codett,用Template:Codett替代Template:Codett等)

IF命令[編輯]

在退出的時候,所有外部命令都會向調用者給出一個介於 0 到 255 之間的返回碼。絕大多數程序對於它們的返回碼有一些約定,例如使用 0 表示成功執行。[4][5][6][7]

如果程序是由 COMMAND.COM 調用的,那麼使用 ERRORLEVEL 作為條件句的 IF 內部命令可以用於判斷最後調用的外部程序的錯誤狀態。

在 COMMAND.COM 中,內部命令不產生新的值。

變量[編輯]

COMMAND.COM批處理文件允許四種變量類型:

重定向、管道及連接[編輯]

由於DOS是單用戶作業系統,管道由按順序執行多個命令並重定向到臨時文件(或從臨時文件重定向)實現。COMMAND.COM不支持重定向到標準錯誤輸出

command < filename
從一個文件或設備重定向標準輸入
command > filename
重定向標準輸出,若文件存在則覆蓋目標文件
command >> filename
重定向標準輸出,若文件存在則追加到目標文件結尾
command1 | command2
command1標準輸出管道至command2標準輸入
command1command2
由ASCII-20(¶, 用 腳本錯誤:沒有「key」這個模塊。輸入)分隔的命令將被連續執行(即命令的「連接」)。[2] 也就是說,command1執行完畢後才會執行command2[2] 這是MS-DOS/PC DOS 5.0及更高的COMMAND.COM中一個未在文檔中寫明的功能。[2] 這項功能也得到Windows NT系列與DR-DOS 7.07下的COMMAND.COM支持。DR-DOS下所有版本的COMMAND.COM支持一個類似的內部函數,但由感嘆號 (!) 調用(一項最初由Concurrent DOSMultiuser DOS衍生的功能)。 然而,在單用戶命令行環境下,這個功能只在內部(如內置的"!DATE!TIME"啟動腳本)或間接通過DOSKEY的$T參數可用,以避免因 !可作為有效文件名字符產生問題。[2] 4DOS支持可配置的命令行分隔符(4DOS.INI CommandSep= 或 SETDOS /C),默認為「^」。[8]在更高版本的Windows NT下,COMMAND.COM還支持&分隔符,以提供與OS/2及Windows NT系列cmd語法的兼容性(然而cmd不支持¶分隔符)。[8]

限制[編輯]

交互模式下命令行長度不得超過126字符。[10][11][12]在MS-DOS 6.2.2中,交互模式的命令行長度限制為127字符。

流行文化[編輯]

終結者重新啟動時,在終結者的HUD視圖中和機械戰警的內部視圖中顯示有「正在加載 COMMAND.COM」(Loading COMMAND.COM)。

在計算機製作的動畫連續劇腳本錯誤:沒有「ilh」這個模塊。中(該劇的背景發生在計算機內部),系統(相當於城市)的領導者被稱為 COMMAND.COM。

參見[編輯]

  • 腳本錯誤:沒有「ilh」這個模塊。(UEFI Shell參考了大量來自COMMAND.COM的指令)
  • 腳本錯誤:沒有「ilh」這個模塊。/ 腳本錯誤:沒有「ilh」這個模塊。 (starts the command processor as the first process)
  • 腳本錯誤:沒有「ilh」這個模塊。 (to override default command processor)
  • 腳本錯誤:沒有「ilh」這個模塊。(由COMMAND.COM設置,reload transient portion of itself)
  • 腳本錯誤:沒有「ilh」這個模塊。(由COMMAND.COM設置,用於與外部程序傳遞較長的命令行)
  • 腳本錯誤:沒有「ilh」這個模塊。 / 腳本錯誤:沒有「ilh」這個模塊。 (第三方的命令處理器)
  • 腳本錯誤:沒有「ilh」這個模塊。 / 腳本錯誤:沒有「ilh」這個模塊。 (另一種 DOS shells)
  • MS-DOS命令列表
  • 腳本錯誤:沒有「ilh」這個模塊。
  • 腳本錯誤:沒有「ilh」這個模塊。/腳本錯誤:沒有「ilh」這個模塊。/腳本錯誤:沒有「ilh」這個模塊。 (有相似的命令處理器,但不叫COMMAND.COM)
  • 腳本錯誤:沒有「ilh」這個模塊。 (有相似的命令處理器,也叫COMMAND.COM)
  • 腳本錯誤:沒有「ilh」這個模塊。 (TPA) (area available for use either by the running application or the transient portion of COMMAND.COM)
  • 腳本錯誤:沒有「ilh」這個模塊。 (一個用於Atari電腦的相似實現)

參考資料[編輯]

  1. Template:Cite web
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Template:Cite book (NB. The provided link points to a HTML-converted version of the NWDOSTIP.TXT, which is part of the MPDOSTIP.ZIP collection.) [1]
  3. 3.0 3.1 Template:Cite book
  4. Template:Cite book (NB. BATTIPS.TXT is part of MPDOSTIP.ZIP. The provided link points to a HTML-converted older version of the BATTIPS.TXT file.) [2]
  5. Template:Cite web
  6. Template:Cite web [3]
  7. Template:Cite web
  8. 8.0 8.1 8.2 Template:Cite book
  9. Template:Cite book
  10. Template:Cite book (NB. MSDOSTIP.TXT is part of MPDOSTIP.ZIP, maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the MSDOSTIP.TXT file.) [4]
  11. Template:Cite web (NB. The provided link points to a HTML-converted version of the 4DOS5TIP.TXT file, which is part of the MPDOSTIP.ZIP collection.) [5]
  12. Template:Cite book (xviii+856+vi pages, 3.5"-floppy) Errata: [6][7]
引用錯誤:在 <references> 中定義的 <ref> 標籤設定 name 屬性為 "Microsoft_COMMAND",但在前文中並未使用。

延伸閱讀[編輯]

外部連結[編輯]

腳本錯誤:沒有「Navbox」這個模塊。 Template:Windows Components