COMMAND.COM

来自Local Chinese Wikipedia
(重定向自Command.com
跳转到导航 跳转到搜索

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二进制文件中的命令。因此,它们一直可用,但只能直接执行于命令直译器。

  1. 重定向 Template:键盘按钮键在一行末尾按下后,所有命令才被执行。COMMAND.COM不区分大小写,也就是说命令可以按照任意大小写组合输入。
脚本错误:没有“ilh”这个模块。
通过
  1. 重定向 Template:键盘按钮
  2. 重定向 Template:键盘按钮控制程序中断。
脚本错误:没有“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(¶, 用
  1. 重定向 Template:键盘按钮输入)分隔的命令将被连续执行(即命令的“连接”)。[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>内定义的name(名称)为“Microsoft_COMMAND”的<ref>标签未在前文内使用。

延伸阅读[编辑]

外部链接[编辑]

脚本错误:没有“Navbox”这个模块。 Template:Windows Components