![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 00:11 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| WinPE、PowerShell及其它命令行系统专区 » [原创]Win2000/XP中的命令行[06-05-22] |
| 可打印版本 59,278 / 54 |
| 第1楼 willsort | 发表于 2006-05-16 19:40 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[原创]Win2000/XP中的命令行[06-05-22] Win2000/XP中的命令行
Updated:2006-05-22 Windows2000/XP所缺省支持的命令行环境主要有两个:cmd.exe(以下简称CMD)和command.com(以下简称COMMAND),尽管它们许多方面与DOS很相似,但它们都不是DOS。它们只是操作系统Windows的外壳界面,而DOS(例如MS-DOS、FreeDOS等)则是独立的操作系统。 CMD是最常用的命令行环境,提供对系统中所有命令行程序的支持,包括32位PE格式的控制台程序和16位MZ格式的DOS程序;但它本身是一个32位的PE程序,所以在运行16位DOS程序前需要模拟一个环境,那就是“NT下的DOS虚拟机(NT Virtual DOS Machine,简称NTVDM)”,由%SystemRoot%\system32下的ntvdm.exe提供支持。因此,当我们刚刚打开CMD时,进程管理器中会显示出cmd.exe进程,而当在其中运行了一个16位的DOS程序后(比如debug),又会多出一个ntvdm.exe进程。 COMMAND是运行16位DOS程序的兼容性命令行环境,这个环境仍然由ntvdm.exe提供,而COMMAND不再是一个独立的“命令解释器”,而只是一个为了与低版本系统相兼容,而设计出的一个16位命令行环境的入口。所以,在运行COMMAND后,进程管理器只有一个ntvdm.exe进程,而不会有command.com进程。 CMD vs COMMAND 与COMMAND相比,CMD缺省提供了更多的命令行特性,比如多国语言显示和输入法(代码页)、更完善的字体(TrueType)、可以滚动浏览的窗口(屏幕缓冲区)、命令行历史记录和宏命令(DOSKEY)、文件和目录名自动完成、功能增强的内部命令(命令扩展)、实时更新的环境变量(延迟扩展)等等,这些特性在启动16位程序后将失效。 与CMD相比,COMMAND更像一个虚拟的PC机,许多运行16位程序所需要的硬件和软件环境都可以通过它模拟出来。它的启动过程与DOS相似,通过%SystemRoot%\system32\config.nt配置内存环境并加载所需要的硬件驱动,通过%SystemRoot%\system32\autoexec.nt执行某些启动虚拟环境时需要自动执行的任务。 命令行中的中文 Windows2000/XP简体中文版的CMD虽然缺省地支持中文代码页(936),但是这只是对32位程序而言;在使用了16位程序后,由于ntvdm.exe的影响,代码页会被强制切换回英文(437),因而不仅无法正常显示中文,并经常伴随着“Invalid keyboard code specified”的错误提示;而COMMAND则仅支持英文代码页,无法使用chcp进行代码页的切换。 解决这个问题的办法是graftabl.exe,这个启用在图形模式下显示扩展字符集的功能的工具,可以使16位程序处在英文代码页环境下仍然可以显示中文。 如果在CMD中,首先运行chcp 437将内部代码页切换为英文,再运行graftabl 936启用中文字符集显示,此后无论是否运行16位程序,则输出代码页均为中文,但此时仍无法使用中文输入法输入中文。 如果在COMMAND中,则内部代码页已为英文,可直接运行graftabl 936启用中文字符集显示,此时可在COMMAND中显示中文,但也无法输入中文。 如果在批处理脚本中,则预先写入chcp 437>nul和graftabl 936>nul两句,可以保证以后运行16位程序时正常地显示中文。 其它重要的命令行 “故障恢复控制台”是Windows2000/XP安装光盘上提供的命令行环境,主要用于修复系统故障的修复,缺省并不被安装到系统中。 “PowerShell”是下一代Windows的命令行工具,将是CMD的替代品,但目前仍没有列入到Windows2000/XP的缺省配置中,它需要.Net框架2.0的支持。 “微软管理规范命令行”提供了到 WMI 的简单接口,这样即可利用 WMI 管理运行 Microsoft Windows 的计算机,提供了命令行或脚本方式浏览和管理系统资源的便捷方式,它是WindowsXP所带来的新工具,第一次运行时会自动进行初始化安装配置。 相关的概念 命令行解释器(Command Processor/Command Interpreter) 命令行解释器是一个单独的软件程序,它可以在用户和操作系统之间提供直接的通讯。非图形命令行解释器用户界面提供运行基于字符的应用程序和实用程序的环境。命令行解释器通过使用类似于 MS-DOS 命令解释程序 command.com 的各个字符来执行程序并在屏幕上显示其输出。Windows 服务器操作系统(NT)命令行解释器使用命令解释程序 cmd.exe(该程序加载应用程序并指示应用程序之间的信息流动)将用户输入转换为操作系统可理解的形式。 命令提示符(Command Prompt) 1、命令行解释器cmd.exe的快捷方式,它可以打开一个CMD窗口,一般位于开始菜单的“附件”中; 2、命令行中输入每条命令前的提示文字,通常为当前所在路径信息,可以通过环境变量PROMPT来修改; 外壳/界面(Shell/Interface) 操作系统或其他系统中负责实现用户与系统内核交互的程序或模块。典型地,资源浏览器(explorer.exe)和命令行解释器(cmd.exe)都是Windows系统的外壳,前者是属于图形化界面(Graphic User Interface, GUI),后者则是命令行界面(Command Line Interface, CLI)。 控制台(Console) 1、对系统进行集约化控制和参数配置的环境。例如,图形界面的控制台有“微软管理控制台(Microsoft Management Console,MMC)”,命令行界面的有“命令行解释器(cmd)”和“微软管理规范命令行(wmic)”。 2、命令行环境下的输入输出设备,代号为con,它通常可以看作是键盘和屏幕的组合。 [ Last edited by willsort on 2006-5-22 at 15:03 ] |
|
| 第2楼 electronixtar | 发表于 2006-05-16 21:43 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
好!!!
建议写入wiki [ Last edited by electronixtar on 2006-5-16 at 21:46 ] |
|
| 第3楼 DOSforever | 发表于 2006-05-22 12:23 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
写的好,尽管我对这种假 DOS 从不感兴趣,除非实际碰到。
另外更正一个小错误:应该是 Interpreter ,而不是 Interupter(Interrupter?) |
|
| 第4楼 willsort | 发表于 2006-05-22 14:30 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re DOSforever:
感谢兄的指正,已对原文做出更新。此外的更新内容包括某些节段次序的调整、WMIC一段文字的补充和CMD和COMMAND简写的使用。 [ Last edited by willsort on 2006-5-22 at 15:04 ] |
|
| 第5楼 penghy | 发表于 2006-06-12 09:07 |
| 初级用户 发帖 8 积分 22 | |
|
喜欢这类比较系统底层的文章。
|
|
| 第6楼 zilongzhao | 发表于 2006-08-05 23:15 |
| 新手上路 发帖 10 积分 19 | |
|
多谢版主的劳动。
|
|
| 第7楼 willsion | 发表于 2006-08-06 21:07 |
| 高级用户 发帖 312 积分 793 | |
|
学习一下。
|
|
| 第8楼 lhsum | 发表于 2006-10-30 01:16 |
| 新手上路 发帖 6 积分 14 | |
那如何才能使command支持doskey命令呢? |
|
| 第9楼 electronixtar | 发表于 2006-10-30 02:03 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
下载一个第三方的增强版 doskey 就行了,还支持 tab 列举目录呢
|
|
| 第10楼 lxmxn | 发表于 2006-10-30 11:46 |
| 版主 发帖 4,938 积分 11,386 | |
|
恩,写得非常的好,希望楼主多写一些这样通俗易懂,篇幅不长,大家都看的懂的好文章给我们新手朋友看.呵呵..谢谢楼主... |
|
| 第11楼 xuantian | 发表于 2006-11-06 02:26 |
| 高级用户 发帖 282 积分 587 | |
|
在CMD窗口中输入 Help 回车都有的
|
|
| 第12楼 lxmxn | 发表于 2006-11-06 06:37 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by xuantian at 2006-11-6 02:26: 汗一个先。。 用这个help看到的只是一些基本命令的简单介绍,况且CMD的帮助有的很难理解,要看其它的资料才会慢慢的懂。 |
|
| 第13楼 abcdos | 发表于 2006-11-16 05:30 |
| 初级用户 发帖 45 积分 88 | |
|
好贴,顶
|
|
| 第14楼 whiteangel20305 | 发表于 2006-11-19 08:38 |
| 新手上路 发帖 5 积分 10 | |
|
谢谢!!
|
|
| 第15楼 hq | 发表于 2006-11-28 00:15 |
| 新手上路 发帖 7 积分 15 | |
|
写的好,这样的文章就适合我这样的新手,很是感谢。希望楼主多写点这样通俗易懂的好文章。呵呵,谢谢啦。
|
|
| 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |