数学建模社区-数学中国

标题: 增强命令行界面的技巧 [打印本页]

作者: 韩冰    时间: 2004-10-20 11:37
标题: 增强命令行界面的技巧
虽说Windows的图形界面陪伴我们已有19年,可命令行界面依然保持着它的魅力和活力。它的用途非常广泛,甚至可以来限制一个用户登录网络发送信息的时间。如果你习惯的是Windows 95/98或是Windows Me中的命令提示符模式,那以下就是一个好消息:Windows XP的版本更类似于Windows NT和Windows 2000而不是MS-DOS,这些相似之处包括命令的格式和便于使用的特性,以及其他一些与时俱进的改进。但令人不解的是,旧版本的MS-DOS命令解释程序—command.com—却仍然存在于Windows XP系统中。不过这次我们要研究的则是Windows XP 和2000里的版本—cmd.exe. 由于在这样一篇文章里我们不可能面面俱到,所以本文主要讨论界面功能的增强。   3 V7 K; u8 p( `; l

  我们从建立一个快捷方式开始:随便在什么地方创建一个命令提示符的快捷方式,比如在快速启动工具条里或是桌面上。在创建快捷方式向导中“项目的位置”一栏中输入密码,然后再给这个快捷方式起一个合适的名字,像是“命令提示符”之类的,然后点击“完成”。这样就建好了一个空白的快捷方式以供日后你自定义和修改。

0 U1 B) J5 ^$ d0 ?) K

  右键点击并选择属性,在对话框里,除了通常的“常规”、“快捷方式”和“兼容性”以外,还有名为“选项”、“字体”、“布局”和“颜色”的几个选项卡。在“选项”页中,前两项分别控制着光标大小和显示选项。但下面的就比较难懂了,左边的一个用来设定命令缓冲区,这相当于Windows 3.0到Windows NT里MS-DOS中那个非常有用但鲜为人知的Doskey命令(见图1)。 + ^7 D; L7 I- k1 L5 o$ ?* k3 ~1 k- z( a   

. x7 l. [' M' ]: d7 h) s8 S& {# I - q! H6 M8 B) y3 V( Q

   9 j5 g8 O' K- x ! k8 E/ Y7 o0 s$ n& ^8 Y  在命令提示符窗口里,你可以用上下键召回先前的命令。也可以按F7,这样会弹出一个窗口,其中记录着你输入过的命令。输入时先按F9,键入命令的序号再回车即可。   2 A/ R7 N: Z" n0 K& j! l( n 3 t& x& ?$ Q7 l9 D. R  你也可以在“选项”页中改变缓冲区的大小和缓冲区的数目,但这对一般用户来说意义不大。有用的是“丢弃旧的副本”这个选项(通常它是默认关闭的),举例来说,如果你禁用这个选项,然后在几个不同的目录里都运行DIR命令的话,你的历史清单里就只能找到一个DIR条目,即便使用上下方向键也一样。

% V) `; j8 ]2 y& y2 v# H$ e/ v4 {

  在编辑选项中,快速编辑的选项也和它在MS-Dos中的前身类似,也就是说,你可以用鼠标选择原文复制,而不需要到系统菜单中去通过点击 “编辑” “标记”来激活它。在Windows 98或之前的版本里,由于默认的编辑模式是覆盖,如果一个命令里遗漏了一个字母,你必须用退格键或方向键删回到缺失的字母处,然后再输入剩下的部分。到了Windows ME中,缺省的编辑模式则改为插入—这样其余的字母会向后移动,就像在Windows下编辑文本一样。在Windows XP里,它变成了一个可选项:你可以选择任何一种方式。   : x3 V3 D$ K _3 ]/ i3 p7 S " H6 G b8 i8 m) w. U# m9 A1 l  相比之下,“字体”页显得简单明了。你可以选择任意大小的位图字体或是Lucida Console Truetype风格的72号字—虽然屏幕上显示不了几个这样的字。而“布局”页则不仅可以让你控制窗口的大小和位置,还可以来调整屏幕缓冲区的大小。与MS-DOS不同的一点是,当命令窗口被填满后,顶端的信息不会就此消失,而是滚动出了窗口。默认的设置是保留300行—当于整整六屏最大化的MS-DOS窗口,如果你愿意,甚至可以把它设成9999行。当然你也可以改变控制窗口宽度和缓冲区宽度的大小—只不过这样做意义不大(参见图2)。“颜色”页也不需多做解释。可以分别设置主屏幕背景色和文字颜色,以及弹出对话框(像是刚才那个历史命令对话框)的背景色和文字颜色。 : [) R$ Q7 N* z" Z1 v! K; M % B- s4 c! ]% K  

/ K6 h0 f+ M) I5 U3 S- ] 9 h* M) w( Q- D5 V- ~# G6 h: h3 M

( }# Y/ ^) C. P* c e8 R' k& N" k: A3 _. w   你也可以右键点击命令提示符窗口的标题栏,从而直接在菜单中选择“属性”来改变这些选项。此时,一切就开始变得复杂了—你可能已经意识到,当你通过快捷方式启动一个命令窗口的时候,它继承了快捷方式的文件名。在我们的例子中,它是“命令提示符”,但是你一旦重命名了这个快捷方式(在属性中的‘常规’页里改),比如改为“George”,它将出现在标题栏里。如果你从开始菜单中运行CMD,在这在这种标准的启动状态下,窗口的标题会是C:\Windows\System32\cmd.exe. 如果信手改动属性选项,就会弹出一个对话框:“属性仅对当前窗口生效”或者是“修改启动该窗口的快捷方式”,让人很是困惑。    9 |" H: @$ N4 }' `% o+ E p2 t+ x; ?0 _ {! y  然而,如果你在开始菜单中运行cmd.exe,然后修改属性的话,你会看到另外一个对话框:“属性只对当前窗口生效”或是“保存属性,供以后具有相同标题的窗口使用”。另外,系统菜单的“默认”项目下又多出了一个额外项目:自动完成。它的作用显而易见——我们不需要键入完整的文件或文件夹的名称,而只要打上一个或几个字母,再按TAB键,命令处理器就会提供自动完成的建议。比如你处于C:\windows目录下想要去C:\program files,只需键入“cd c:\p”然后按TAB键就行了。如果自动完成建议的并非你想要的,你只需不断的按TAB键直至你想要的出现即可。

; c5 W$ D' s7 ~: L4 q4 T

  听上去似乎很是方便,但是实际使用中却仍会出岔子。因为Windows在许多犄角旮旯的地址中储存了各种各样的命令处理器选项,它们之间的相互作用又如同迷宫一般。对于这个问题,幸好我们还有三个简化方法。一是使用Windows XP版的TweakUI,你可以从www.microsoft.com/windowsxp/pro/downloads/powertoys.asp下载,它能为自动完成功能提供一个非常广泛的按键选择。其他的Tweaking程序,如Winguides Tweak Manager也提供相似的功能。另一种冒险的选择是做好提前备份后直接修改注册表。进入HKEY_CURRENT_USER\Software\ + x4 u4 R7 ]7 x2 X4 l) s8 R/ B , e' y$ g& b9 R   Microsoft\Command Processor寻找名为“CompletionChar”的键值,如果没有,就创建一个同名的DWORD,将其键值设为9,也就是TAB键的代码。你也可以在HKEY_LO- 2 G% g; P& w. e9 l# N7 i) K7 p : c* j, X# h5 Q/ K) k) H% X) e6 |  CAL_MACHINE\SOFTWARE\Microsoft\ $ W) m2 z9 W6 Q( x% G ; `% A2 {; Y( `9 v* F' i1 B   Command Processor中重复这一过程,但你需要记住的是,HKEY_CURRENT_USER中的设定是总会优先于HKEY_LOCAL_MACHINE中的设定。   ) M; W- i2 U1 m 3 S) {3 v& R+ H  

6 f6 H* n9 f3 S 1 i% L6 T. t% K, u7 a

3 \9 G+ Y8 ?) C( D % h: [! M* z* e6 d/ Q2 \% ^& Q  如果你实在不想被注册表或者Tweaking工具弄得晕头转向的话,还有一个方法。让我们回到那个快捷方式的属性页(见图3)。在“快捷方式”页里的“目标”框里你应该可以看见到cmd.exe的路径。你可以在此处使用各种参数,我们这次要用的则是“ /fn.”(记住在斜线前留一个空格,否则该快捷方式不会起作用)。这也会开启自动完成功能,只是你没法选择功能键—你只能使用Ctrl+F自动补全文件和文件夹的名称,或者只用Ctrl+D来补全文件夹的名称。  5 h( h8 w- \& {* C' G : c/ z% Q$ s) L# u& n2 I P: l  当然你可以使用别的一些参数,比如“ /t:1e”可以设定背景颜色为深蓝色,文本为黄色。你也可以使用其他的颜色,十六进制的数值范围从0(黑色)到f(白色),冒号后面第一个数字代表背景。如果要使用多个的参数的话,它们之间还必须留有空格。

- Y/ H z2 D f! n' O5 c

 另一个有用的参数是在“ /e:”后面加“on”或“off”.用来开启或关闭“扩展名命令”。这可以构成一系列便于使用的命令。举个例子,在使用CD(change directory变换目录)命令的时候,你不必在文件夹的名称前后打空格;你也可以在用MD(make directory建立目录)命令的时候建立多层目录;你也可以在相关的Windows应用程序里仅仅键入文件名来打开该文件。虽然扩展名是默认需要的,但这可以在注册表里关闭掉,因为这些参数通常直接覆盖注册表设置,所以使用参数也是一个改变设置的好办法(参见图4)。 7 z* I e# e: |& F1 z5 c) P0 L0 L ; ]( S1 B4 o0 y3 P7 Z% r7 P   

* X# G+ D! `6 H ( N9 L4 u7 i# }# M% P3 M! p! X

   ( G7 p- r. l; d O+ ^ - e7 q' u. p& x. b: b2 z5 \- A/ M  一个值得注意的故事   ) i$ U1 |% b' S2 ~0 D. t/ J3 W" X 5 J5 t/ A! g w; z  一位读者的Windows XP系统的计算机在引导的时候有时候会启动帮助中心,然后就会重复这一过程,载入更多的帮助中心直到电脑死机。用MSCONFIG剔除所有涉及帮助的启动程序并查找微软知识库重命名了helpctr.exe之后,问题依然存在。这时他才发现,有时候F1键被卡住了没弹起来,而F1键正是用来启动帮助的。

- o$ I3 ?$ d# y2 F; ?

 丢失的密钥  

( G) m, P0 B1 M" s2 [$ f- J7 H6 k

  众所周之,如果你丢失了Windows XP、Office XP或Office 2003的产品密钥——印在包装盒上某处黄色不干胶贴上的那个25位数字的话,那么你重装系统时候就会头疼了。与以前的版本不同的是,XP的产品密钥是以密码的形式而非直接的形式储存在注册表里。然而,在www.pcw.co.uk/download/1154513有一个叫做Belarc Advisor的免费工具可以帮助你解决这个难题。运行后就会在你的浏览器创建一个Web页,其中列出了你计算机上安装的所有软硬件的详细信息,所有Windows热补丁、第三方软件版本、硬盘、主板和内存等,非常清楚明白——当然还有你的XP和Office的产品密钥。  

% ^ |$ i; \& ]$ O8 k; L" M( A& P* x

  整理日志  

9 T+ e/ E4 b$ H

  再来谈谈关于XP防火墙日志文件的问题,pfirewall.log输出的原始文本简直一塌糊涂。对付这个问题的一个方法是去掉标题,将文件以“固定宽度”方式导入Excel,然后格式化纵栏。另外有一个简单有效的工具——Robert McBride's XP Logger 2.1a——可以使pfirewall.log的原始文本文件的显示变得整洁起来。它可以从www.majorgeeks.com/download.php?det=3307免费下载。






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5