cmd和command的区别?

mic47 2010-12-17 12:27:20
Command是DOS程序的命令行入口,程序执行是调用一个进程NTVDM(NT Virtual DOS Machine;NT 下的DOS虚拟机)。而CMD是Windows2000以上版本才有的,32位程序的命令行入口,同时兼容16位的程序。CMD本身是个32位的程序,所以打开后会有CMD进程,运行16位程序时,兼容处理,调用NTVDM,会再出一个进程。
那么在command中怎么可以运行cmd,command是DOS程序的命令行入口,cmd是32位的程序啊。
如下:
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.

C:\USERS\ADMINI~1>cmd
Microsoft Windows [?? 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\ADMINI~1>
...全文
749 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
czhangk 2011-08-31
  • 打赏
  • 举报
回复
受教了 谢过
mic47 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 delphiguy 的回复:]
command.com只是一个shell,它看起来执行了某些内部命令、程序并不是它本身做到的,而是调用一系列DOS核心功能来完成的,它本身只起一个命令接口的作用。
在win32系统中,这个DOS核心并非真正的DOS,而是由ntvdm.exe模拟出来的,而ntvdm.exe本身是win32程序,它除了模拟基本的DOS核心功能外,也可以做win32程序能做的任何事情,比如调用CreateProces……
[/Quote]
终于讲明白了。。。
mic47 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 cxdzxc 的回复:]
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>command

Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.

C:\DOCU……
[/Quote]
这不是cmd执行了吗?有什么不对吗?
nanlingcg 2010-12-26
  • 打赏
  • 举报
回复
跟FC模拟器差不了多少... 呵呵!!!
cxdzxc 2010-12-26
  • 打赏
  • 举报
回复
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>command

Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.

C:\DOCUME~1\ADMINI~1>cmd
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\DOCUME~1\ADMINI~1>command
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.

我不评论了
mic47 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 masmaster 的回复:]
引用 26 楼 mic47 的回复:
引用 23 楼 lyserver 的回复:
引用 22 楼 mic47 的回复:
引用 21 楼 lyserver 的回复:
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。

我从网上看的是command是dos程序的入口啊。那这句话对吗?

基本算对,不全面。

那command能接受32位的程序吗?
……
[/Quote]
在command输入cmd能运行啊,cmd是32位的程序啊
  • 打赏
  • 举报
回复
command.com只是一个shell,它看起来执行了某些内部命令、程序并不是它本身做到的,而是调用一系列DOS核心功能来完成的,它本身只起一个命令接口的作用。
在win32系统中,这个DOS核心并非真正的DOS,而是由ntvdm.exe模拟出来的,而ntvdm.exe本身是win32程序,它除了模拟基本的DOS核心功能外,也可以做win32程序能做的任何事情,比如调用CreateProcess来加载另一个程序。

masmaster 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 mic47 的回复:]
引用 23 楼 lyserver 的回复:
引用 22 楼 mic47 的回复:
引用 21 楼 lyserver 的回复:
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。

我从网上看的是command是dos程序的入口啊。那这句话对吗?

基本算对,不全面。

那command能接受32位的程序吗?
[/Quote]
不能。
mic47 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 lyserver 的回复:]
引用 22 楼 mic47 的回复:
引用 21 楼 lyserver 的回复:
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。

我从网上看的是command是dos程序的入口啊。那这句话对吗?

基本算对,不全面。
[/Quote]
那command能接受32位的程序吗?
mic47 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lyserver 的回复:]
引用 17 楼 mic47 的回复:
引用 16 楼 lyserver 的回复:
windows下运行DOS是在虚拟机中运行的。

那cmd和command的区别是什么啊?

cmd是windows的命令行,支持长文件名,且cmd.exe本身是一个32位的程序,command是dos遗留下来的,不支持长文件名,而command.exe本身是一个16位的程序。
[/Quote]
什么是长文件名?
lyserver 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 mic47 的回复:]
引用 16 楼 lyserver 的回复:
windows下运行DOS是在虚拟机中运行的。

那cmd和command的区别是什么啊?
[/Quote]
cmd是windows的命令行,支持长文件名,且cmd.exe本身是一个32位的程序,command是dos遗留下来的,不支持长文件名,而command.exe本身是一个16位的程序。
mic47 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lyserver 的回复:]
windows下运行DOS是在虚拟机中运行的。
[/Quote]
那cmd和command的区别是什么啊?
pokey 2010-12-24
  • 打赏
  • 举报
回复
一个是命令 一个是程序
lyserver 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 mic47 的回复:]
引用 21 楼 lyserver 的回复:
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。

我从网上看的是command是dos程序的入口啊。那这句话对吗?
[/Quote]
基本算对,不全面。
mic47 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 lyserver 的回复:]
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。
[/Quote]
我从网上看的是command是dos程序的入口啊。那这句话对吗?
lyserver 2010-12-24
  • 打赏
  • 举报
回复
在command.com命令中,只能显示短文件名,所有长文件名也会转换为短文件名。
lyserver 2010-12-24
  • 打赏
  • 举报
回复
短文件名指DOS下8.3格式的文件名,即文件名最长为8个字符,扩展名最长为3个字符,且文件名中只能有一个“.”符号,长文件名则无此限制。
mic47 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 delphiguy 的回复:]
NTVDM本身是windows程序,懂吗?:)
[/Quote]
那他也只能运行16位的程序啊。。
lyserver 2010-12-23
  • 打赏
  • 举报
回复
windows下运行DOS是在虚拟机中运行的。
  • 打赏
  • 举报
回复
它可以调用CreateProcess来运行其他的32位程序。
加载更多回复(10)

21,498

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧