WindowsXP下运行命令中cmd和command的区别

来源:互联网 发布:外汇crm管理系统源码 编辑:程序博客网 时间:2024/06/01 08:32

cmd.exe和command.com

CMD.EXE是windows nt带的一个32位的命令行程序,那完全不是DOS. 它是Windows 窗口命令行接口,因此它可以通过窗口右上角的X来关闭,它不是一个dos窗口,如果运行cmd.exe则进程可以看到cmd.exe。cmd是命令提示符(命令解释器),32位支持长文件名,中文 。cmd是进入控制台。

COMMAND.COM是用ntvdm虚拟出来的一个16位的dos环境.同样也是基于命令行的. 是一个16位的DOS应用程序,它用于支持老的 dos应用程序,它必须通过命令行输入exit才可以退出,它一般运行于NTVDM中。如果用户运行 command.com,用户会在任务管理器中看到一个进程ntvdm.exe在运行。而且 command.exe还支持以前的16位的现在已经不用的命令。command是WindowsXP中的16位DOS,不支持长文件名,不支持中文。command是纯DOS系统,执行它后会建立一个全新的环境模式,(比如path=的设置就会有改变) 是运行在虚拟8086 模式的程序(可以看到进程中有个NTVDM出来了,这就是NT DOS 虚拟机),运行16位dos程序都会使用这个。16位程序都只支持8.3文件名(即文件名8个字符,扩展名3个字符),因此文件系统会保留两个文件名,一个长文件名,一个短文件名以供16位程序用,事实上他们都指向同一个文件。command也不能显示汉字,如果要显示汉字,可以更改代码页为936(简体中文),英文是437,用graftabl命令。用法 graftabl xxx 但是只能对应于图形模式下,在全屏幕状态是无效的。

但就用户来说,这两个命令有惊人的相似之处,他们同样都是运行环境,只是CMD更强大,虽然只能运行在NT内核的windows中,而command只是一个虚拟出来的dos运行环境罢了,不过他也能运行很多东东,总之都有用,尺有所短,寸有所长。比较旧的系统,如win95那些,就只有command而不存在cmd了。

另:debug程序可以用quit,或q命令退出。

另:用cmd和command分别调用debug,再用r命令查看各寄存器的值时发现段寄存器的初始值是不一样的,比如在cmd下DS,ES,SS,CS为1382,在command下他们的值为14B1。而其他寄存器的值是一样的。原因待查。


0 0
原创粉丝点击