Sur*_*rya 31 windows shell command-line ms-dos cmd.exe
到现在为止,我从来没有想过(和从未观察到),这cmd和command是两个不同的东西。嗯,是吗?
看看这张照片:
实际上,cmd每当我想使用命令行(对于 Git/VIM)时,我通常都从“运行”对话框打开。所以,我自定义了显示位置,字体,颜色等。今天,我为了改变,输入command了运行而不是,cmd发现我的窗口上有新的东西。它的窗口中有“DOS”。
所以,显然cmd和之间应该有区别command。我想知道
Syn*_*ech 32
当您运行 32 位控制台程序时,它由cmd; 当您运行 16 位控制台程序时,它由command.
Windows XP 包含一个子系统来支持较旧的 16 位应用程序。
旧的 16 位应用程序可用作 DOS 和 Windows 程序。DOS 程序本质上是控制台应用程序,并在类似于命令提示符的环境中运行。但是,32 位 Windows 控制台应用程序非常相似并且外观相同。
命令处理器/解释器cmd有几个目的:
dir,copy等).bat文件和NT兼容.cmd文件)当您运行旧的 16 位控制台程序时,它由 NTVDM(Windows NT 虚拟 DOS 机)执行。它提供了一个模拟的 DOS 系统(因此是虚拟 DOS 机),它类似于运行专用的虚拟机软件,只是模拟层更简单。command是一个 16 位版本的命令解释器,它比cmd.exe实际的 Windows 程序更接近实际的 DOS (并且具有 Windows PE 标头,与command.comDOS MZ 标头不同)。
commandcmd除了仅支持 16 位程序外,其用途相同。此外,它不支持.cmd文件,内置命令较少,语法限制更多(cmd是一个更新、更现代、更高级的命令行解释器,类似于4DOS)。
但是,它支持图形 DOS 程序(如旧游戏),但能否成功运行这些程序取决于显卡驱动程序和程序的性质。有许多站点提供各种技巧来让 DOS 游戏在 Windows 上运行(尽管在 Vista 及更高版本上的成功通常比在 XP 上更有限)。
需要注意的是,64 位版本的 Windows 已经完全放弃了对 16 位程序的支持,因此根本不包括在内command,因此无论是 DOS 还是 Windows 16 位程序都不会运行,而是会抛出(误导)错误消息.
技术说明
command.com具有.com向后兼容 DOS 程序的扩展,但与大多数其他 Windows 版本的外部 DOS 命令一样,在内部,它实际上是一个 Windows PE.exe文件。这提供了一个有趣的观察结果,即虽然 Windows 使用扩展名作为如何处理大多数文件类型的指示器,但对于可执行文件,它会忽略扩展名并查看其内容(否则,.exe如果将其视为 则将不起作用.com)。这个问题与这种效应有关。
与作为 DOS 程序的 COMMAND.COM 不同,cmd.exe 是通常在 Win32 控制台中运行的原生 Windows 应用程序。这允许它利用平台上本机程序可用的功能,否则 DOS 程序不可用。
还...
cmd.exe 的 OS/2 和 Windows NT 版本都比 command.com 的一揽子“错误的命令或文件名”(在命令格式错误的情况下)具有更详细的错误消息。
这是来自这篇内容丰富的维基百科文章。
提到了如何将旧的 command.com 命令整合到新的 cmd.exe 功能中……例如……
deltree (command.com) 的功能以 /s 参数的形式被卷入 rd (cmd.exe)
所以,请放心阅读。
| 归档时间: |
|
| 查看次数: |
36695 次 |
| 最近记录: |