The Wayback Machine - https://web.archive.org/web/20221028221434/https://baike.sogou.com/kexue/d10099.htm

CMD.EXE

编辑
cmdexe

CMD命令提示符,可以称为CMD(以命令命名)或cmd.exe(以可执行文件命名),也称为Command Prompt命令提示符(Windows中的默认名称),是一种在OS/2,eComStation,Windows NT,Windows CE和ReactOS等操作系统中的命令行解释器。它是COMMAND.COM在DOS和Windows 9x系统中的组件,类似于使用在类Unix系统中的Unix Shell。cmd.exe最初是由特蕾莎·斯托维尔针对Windows NT版本而开发的。[1]

1 操作编辑

cmd.exe通过命令行接口与用户交互。在Windows系统中,这个接口是通过Win32控制台实现的。cmd.exe充分利用其本身平台的本地程序功能的可用特性。例如,在OS/2中,它可以在命令管道中使用真实管道,从而允许管道的两端同时运行。因此,可以重定向标准错误流(COMMAND.COM使用临时文件,并一个接一个的连续运行两端)。

2 与COMMAND比较编辑

在Windows系统中,cmd.exe大部分与COMMAND.COM兼容,还提供以下扩展:

  • 与COMMAND.COM概括性提示“错误命令或文件名”(在命令格式不正确的情况下)相比,有更详细的错误消息。在OS/2中,错误以系统选择的语言报告,其文本取自系统消息文件。然后可以发出带有错误消息号的帮助命令,以获得更多信息。
  • 支持使用箭头键滚动命令历史(在DOS下,此功能仅在DR DOS(通过历史记录)下可用,后期通过名为DOSKEY的外部组件可用)。
  • 为文件和文件夹的路径添加命令行补齐。
  • 将插入符号字符(^)视为转义字符;它后面的字符要逐字处理。在cmd.exe和COMMAND.COM有一些特殊的字符(例如“<”、“>”和“|”),意在改变命令行处理器的行为。插入符号字符迫使命令行处理器逐字解释它们。
  • 支持延迟变量扩展(Windows2000及更高版本),修复了在使用控制结构时困难且复杂的DOS的习惯用法。[2] 可以禁用扩展,提供更严格的兼容模式。

内部命令也得到了改进:

  • DELTREE命令被合并到RD命令中,作为其/S开关的一部分。
  • SetLocal和EndLocal命令限制了环境更改的范围。在SetLocal命令从本地到批处理文件batch file之后,相应改变才会应用于命令行环境中。EndLocal命令恢复以前的设置。[3]
  • Call命令允许调用批处理文件中的子程序。COMMAND.COM的调用命令只支持调用外部批处理文件。
  • 拓展了Set集合命令的文件名解析器,与C Shell兼容。
  • Set命令可以执行表达式求值。
  • 对For命令的扩展除了支持解析文件外,还支持解析除了文件名的任意集合。
  • 新的PushD和PopD命令提供了对过去导航路径的访问,类似于网页浏览器或文件浏览器中的“前进”和“后退”按钮。
  • 条件命令IF除了区分大小写敏感的字符串比较之外,还可以执行不区分大小写的比较、数值相等和不等比较(这条特性在DR-DOS存在,但在PC DOS和MS-DOS中没有)。

参考文献

  • [1]

    ^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..

  • [2]

    ^"Windows 2000 delayed environment variable expansion". Windows IT Pro. Retrieved 2015-07-13..

  • [3]

    ^"Setlocal". TechNet. Microsoft. Retrieved 2015-01-13..

阅读 811
版本记录
  • 暂无