荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: sephiroth (birds of paradise), 信区: Microsoft
标  题: Win 2000命令行大揭秘
发信站: 荔园晨风BBS站 (Mon Aug 12 12:32:24 2002), 站内信件


  Win 2000命令行大揭秘

虽然Win2000已断然抛弃了DOS,但仍然提供对命令行控制台的支持。其命令行不少
命令
在用法上与Win9x的DOS命令相似,但它们的参数、功能、运行环境等却有了很大的
不同,有
关命令已经不再是16位程序,而且有些命令还与图形界面浑然一体,甚至有些命令
还能直接
访问注册表信息。因此我们应当将Win2000的命令行控制台看作是图形界面不可或
缺的补充。

  1.位置及地位特殊
  命令行程序已经不专门用Command目录存放,而是放在32位系统文件的仓库重地
——Win
2000安装目录下的system32子目录中,由此可知Win2000的命令行命令已经不再是
系统的“小
妾”而是被纳为“正房”,而且通过查看system32\dllcache目录可知,Win2000还
将它们列
入了受保护的系统文件之列,一旦system32目录中的命令行命令受损,就用该
dllcache目录
中的备份随即恢复;当然由于Win2000是脱胎于WinNT,所以命令行调用主程序已经
不是Win9
x时代的command.com,而是类似于NT下的cmd.exe。

  2.一些命令只能通过命令行直接执行
  如Win9x中的系统文件扫描器sfc.exe是一个Windows风格的对话框界面,而在
Win2000中
的这条命令却必需在命令行状态手工输入有关参数才能按要求运行,而运行时又是
标准的图
形界面(如图1)。
  3.命令行窗口的使用与以前大不相同
  ①复制、粘贴操作不同。在窗口状态下,已经不再像Win9x的DOS窗口那样有一条
工具栏
,因此不少人发现无法在Win2000的命令行窗口中进行复制等操作,其实Win2000的
命令行窗
口是支持窗口内容的选定、复制、粘贴等操作的,但有关命令却给隐藏了起来。用
鼠标对窗
口内容的直接操作只能够是选取,即按下鼠标左键拖动时其内容会反白显示,如果
再按CTRL
+C命令则无法将选取内容复制到剪贴板,而必须在窗口的标题栏上点击鼠标右键,
然后选择
“编辑”,这时才就会看到有关复制、粘贴等操作命令的菜单(如图2)。
  ②可以前后浏览每一步操作屏幕所显示的内容。这在全屏幕状态下是不行的,必
需使用
Alt+Enter键切换到窗口状态,这时窗口右侧会出现一个滚动条,拖动滚动条就可
前后任意浏
览了,但如操作的显示结果太多,则超过内存缓冲的内容会按照FIFO(First in
First out
,先进先出)原则自动丢弃,使用cls命令后可以同时清除屏幕及缓冲区的内容。


  4.添加了大量快捷功能键和强大方便的类doskey功能
  Win2000的命令行状态下,通过mem/c看不到内存中自动加载doskey.exe命令的迹
象,但
的确具备极强大的类似传统的doskey的功能,比如:
  PageUp、PageDown:重新调用最近的两条命令
  ↑↓:在历史命令中按先后顺序逐条重新调用命令;
  ←→:在命令行移动光标,可以对已经输入的命令行进行编辑;
  Insert:切换命令行编辑的插入与改写状态;
  Home、End:快速移动光标到命令行的开头或结尾;
  Delete:删除光标后面的字符;
  Enter:复制窗口内选定的内容(用之取代CTRL+C命令);
  F7:显示历史命令列表,可从列表中方便地选取曾经使用过的命令;
  F9:输入命令号码功能,直接输入历史命令的编号就可直接使用该命令。
  其它从F1~F9键都分别定义了不同的功能,具体操作时一试便知。

  5.对系统已挂接的码表输入法的直接支持
  以前Win9x的DOS命令提示符下要显示和输入汉字,必须单独启动中文输入法,如
PDOS95
或UCDOS等其它汉字系统,在Win2000的Cmd.exe命令行下已经可以直接显示汉字,
并可以按图
形界面完全相同的热键直接调用系统中已经安装的各种码表输入法,如
Ctrl+Shift切换输入
法,Ctrl+Space切换输入法开关,Shift+Space切换全角与半角状态,Ctrl+.切换
中英文标点
等,使用很方便;不过,该命令行下的输入法只能在命令行进行输入,比如打开了
一个Edit
编辑器,输入法就不起作用了,这不能不说是一个很大的遗憾!

  6.新增多条内部命令
  Color:设置默认的控制台前景和背景颜色。我们再也不必羡慕其它操作系统丰富
的控制
台颜色设置命令了!
  用法:Color [attr] 其中attr为指定控制台输出的颜色属性
  颜色属性由两个十六进制数字指定—— 第一个为背景,第二个则为前景。每个
数字可以
为以下任何值之一:
  如果没有给定任何参数,该命令会将颜色还原到CMD.EXE启动时的颜色。这个值
来自当前
控制台窗口、/T 命令行命令选项或DefaultColor注册表值。
  如果用相同的前景和背景颜色来执行Color命令,Color命令会将ErrorLevel设置
为1。
  例如: "Color fc" 在亮白色上产生亮红色,试着输入一个“Color 02”,哈哈
……你的
屏幕的显示变成了黑底绿字,再也不是一成不变的黑底白字了。
  Pushd:保存当前目录以供Popd命令使用,然后改到指定的目录。
  用法:Pushd [path | ..] 其中path为指定要成为当前目录的目录。
  如果命令扩展名被启用,除了一般驱动器号和路径,Pushd命令还接受网络路径
。如果指
定了网络路径,Pushd将创建一个指向指定网络资源的临时驱动器号,然后再用刚
定义的驱动
器号改变当前的驱动器和目录。可以从Z:往下分配临时驱动器号,使用找到的第一
个没有用
过的驱动器号。
  Popd:命令选项到保存在Pushd命令里的目录。
  如果命令扩展名被启用,从推目录堆栈Popd驱动器时,Popd命令会删除Pushd创
建的临时
驱动器号。
  SetLocal:开始批处理文件中环境改动的本地化操作。在执行SetLocal之后所做
的环境改
动只限于批处理文件。要还原原先的设置,必须执行EndLocal。达到批处理文件结
尾时,对
于该批处理文件的每个尚未执行的SetLocal命令,都会有一个隐含的EndLocal被执
行。
  Assoc:显示或修改文件扩展名关联
  用法:Assoc [.ext[=[fileType]]]
  其中.ext指定跟文件类型关联的文件扩展名,
  FileType 指定跟文件扩展名关联的文件类型。
  键入Assoc而不带参数,显示当前文件关联。如果只用文件扩展名调用Assoc,则
显示那
个文件扩展名的当前文件关联。如果不为文件类型指定任何参数,命令会删除文件
扩展名的
关联。
  例如:
  Assoc .pl=PerlScript
  Ftype PerlScript=perl.exe %1 %*
  允许你启用以下Perl脚本:
  script.pl 1 2 3
  如果不想键入扩展名,则键入以下字符串:
  set PATHEXT=.pl;%PATHEXT%
  被启动的脚本如下:
  script 1 2 3

  7.Cmd.exe更加复杂、强大的命令行参数
  Cmd.exe有很多命令行参数,具体情况如下:
  CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON |
/V:OFF] [
[/S] [/C | /K] string]
  /C 执行字符串指定的命令然后中断;
  /K 执行字符串指定的命令但保留;
  /S 在 /C 或 /K 后修改字符串处理;
  /Q 关闭回应;
  /D 从注册表中停用执行AutoRun命令;
  /A 使向内部管道或文件命令的输出成为ANSI;
  /U 使向内部管道或文件命令的输出成为Unicode
  /T:fg 设置前景/背景颜色(详细信息,请见 Color /?);
  /E:ON 启用命令扩展;
  /E:OFF 停用命令扩展;
  /F:ON 启用文件和目录名称完成字符;
  /F:OFF 停用文件和目录名称完成字符;
  /V:ON 将c作为定界符启动延缓环境变量扩展。
  /V:OFF 停用延缓的环境扩展。
  请注意,如果字符串有引号,可以接受用命令分隔符“&&”隔开的多个命令。并
且,由
于兼容原因,/X与/E:ON相同,/Y与/E:OFF相同,并且/R与/C相同。忽略任何其它
命令选项。
  如果指定了/C或/K,命令选项后的命令行其余部分将作为命令行处理,在这种情
况下,
会使用下列逻辑处理引号字符("):
  (1)如果符合下列所有条件,那么在命令行上的引号字符将被保留:
  不带 /S 命令选项;
  整整两个引号字符;
  在两个引号字符之间没有特殊字符,特殊字符为下列中的一个: <>()@^|;
  在两个引号字符之间有至少一个空白字符;
  在两个引号字符之间有至少一个可执行文件的名称。
  (2)否则,老办法是,看第一个字符是否是一个引号字符,如果是,舍去开头的
字符并删
除命令行上 的最后一个引号字符,保留最后一个引号字符之后的文字。如果/D未
在命令行上
被指定,当CMD.EXE开始时,它会寻找以下REG_SZ/REG_EXPAND_SZ注册表变量。如
果其中一个
或两个都存在,这两个变量会先被执行。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
  命令扩展按默认值是启用的。你也可以使用 /E:OFF,为某一特定调用而停用扩
展。你可
以在用户登录会话上启用或停用cmd.exe所有调用的扩展,这要通过设置使用
Regedit32.exe
的注册表中的一个或两个REG_DWORD值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions


HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
到0x1或0x
0。用户特定设置比机器设置有优先权。命令行命令选项比注册表设置有优先权。

  命令行扩展包括对下列命令所做的更改和添加:
Del或Erase、Color、CD或ChDir、MD或MkDir、Prompt、Pushd、Popd、Set、
SetLocal、End
Local、IF、For、Call、Shift、Goto、Start(同时包括对外部命令调用所做的更
改)、As
soc、Ftype。
有关详细信息,请键入“HELP 命令名”。
  延迟变量环境扩展不按默认值启用。你可以用/V:ON或 /V:OFF命令选项,为
CMD.EXE的某
个调用而启用或停用延迟环境变量扩充。你可以在机器上或用户登录会话上启用或
停用CMD.
EXE所有调用的完成,这要通过设置使用Regedit32.exe的注册表中的一个或两个
REG_DWORD
值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion


HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
到0x1或0x
0。用户特定设置比机器设置有优先权。命令行命令选项比注册表设置有优先权。

  如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来代替一个环境
变量的
数值。
  文件和目录名完成不按默认值启用。你可以用/F:ON或/F:OFF命令选项,为cmd.
exe的某
个调用而启用或停用文件名完成。你可以在机器上或用户登录会话上启用或停用
cmd.exe所有
调用的完成,这要通过设置使用Regedit32.exe 的注册表中的一个或两个
REG_DWORD值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar

HKEY_LOCAL_MACHINE\Software\Microsoft\Command
Processor\PathCompletionChar

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar

HKEY_CURRENT_USER\Software\Microsoft\Command
Processor\PathCompletionChar
  由一个控制字符的十六进制值作为一个特定参数(例如,0x4是Ctrl-D,0x6是
Ctrl-F)。
用户特定设置优先于机器设置。命令行命令选项优先于注册表设置。
  如果完成是用/F:ON命令选项启用的,两个要使用的控制符是:目录名字完成用
Ctrl-D,
文件名完成用Ctrl-F。要停用注册表中的某个字符,请用空格(0x20)的数值,因为
此字符不
是控制字符。
  如果键入两个控制字符中的一个,完成会被调用。完成功能将路径字符长带到光
标的左
边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,显示
第一个相
符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一
个控制字
符会循环显示相符路径的列表。将 Shift 键跟控制字符同时按下,会倒着显示列
表。如果对
该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新
的会被生
成。如果在文件和目录名完成之间命令选项,会发生同样现象。两个控制字符之间
的唯一区
别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完
成被用于
内置式目录命令(CD、MD或RD),就会使用目录完成。
  将引号用相符路径括起来,完成代码可以正确处理含有空格或其它特殊字符的文
件名。
同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会
被丢弃。




--





当我们老的时候,当一切都成为过眼烟云的时候,我们再回头看看自己走过的路,

才发现生命是如此的短暂,那些自己经历过的事情,那些走到自己心里的人,那些

自己曾经的心情故事,都是那么的值得自己回味和珍惜。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.44.81]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店