数学建模社区-数学中国

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

作者: 韩冰    时间: 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. 由于在这样一篇文章里我们不可能面面俱到,所以本文主要讨论界面功能的增强。   & j# P/ x5 B# r' P, Y2 l4 ^

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

9 l" c5 D( o I6 N" e5 ^

  右键点击并选择属性,在对话框里,除了通常的“常规”、“快捷方式”和“兼容性”以外,还有名为“选项”、“字体”、“布局”和“颜色”的几个选项卡。在“选项”页中,前两项分别控制着光标大小和显示选项。但下面的就比较难懂了,左边的一个用来设定命令缓冲区,这相当于Windows 3.0到Windows NT里MS-DOS中那个非常有用但鲜为人知的Doskey命令(见图1)。 ! u1 @ T7 q1 z2 n" O3 _, r" ]3 |   

/ G I5 Z8 s& Z4 O. J2 C- F% o) `& f% ~, q; y+ H) h

   " u4 L8 q+ e' i! j; V7 ]4 H + d/ b0 W5 Q1 m& A7 f1 x& c  在命令提示符窗口里,你可以用上下键召回先前的命令。也可以按F7,这样会弹出一个窗口,其中记录着你输入过的命令。输入时先按F9,键入命令的序号再回车即可。   . z: s$ Q. T; V, y ?2 \. m! s g' w2 p   你也可以在“选项”页中改变缓冲区的大小和缓冲区的数目,但这对一般用户来说意义不大。有用的是“丢弃旧的副本”这个选项(通常它是默认关闭的),举例来说,如果你禁用这个选项,然后在几个不同的目录里都运行DIR命令的话,你的历史清单里就只能找到一个DIR条目,即便使用上下方向键也一样。

' p7 q Z8 y4 E0 o% d

  在编辑选项中,快速编辑的选项也和它在MS-Dos中的前身类似,也就是说,你可以用鼠标选择原文复制,而不需要到系统菜单中去通过点击 “编辑” “标记”来激活它。在Windows 98或之前的版本里,由于默认的编辑模式是覆盖,如果一个命令里遗漏了一个字母,你必须用退格键或方向键删回到缺失的字母处,然后再输入剩下的部分。到了Windows ME中,缺省的编辑模式则改为插入—这样其余的字母会向后移动,就像在Windows下编辑文本一样。在Windows XP里,它变成了一个可选项:你可以选择任何一种方式。   5 O0 U& B0 @: @4 ?+ b ) j) g) s) T* B1 }" F  相比之下,“字体”页显得简单明了。你可以选择任意大小的位图字体或是Lucida Console Truetype风格的72号字—虽然屏幕上显示不了几个这样的字。而“布局”页则不仅可以让你控制窗口的大小和位置,还可以来调整屏幕缓冲区的大小。与MS-DOS不同的一点是,当命令窗口被填满后,顶端的信息不会就此消失,而是滚动出了窗口。默认的设置是保留300行—当于整整六屏最大化的MS-DOS窗口,如果你愿意,甚至可以把它设成9999行。当然你也可以改变控制窗口宽度和缓冲区宽度的大小—只不过这样做意义不大(参见图2)。“颜色”页也不需多做解释。可以分别设置主屏幕背景色和文字颜色,以及弹出对话框(像是刚才那个历史命令对话框)的背景色和文字颜色。 ; D4 C- h, |4 p$ w5 p2 j) d" w0 w& K) O- V' ?, O   

- C/ w. G; G6 x4 f* e0 t / g, W" w) r2 ] D" r& C

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

, y0 M/ w7 P, ~1 D% B( R7 l! Y1 N

  听上去似乎很是方便,但是实际使用中却仍会出岔子。因为Windows在许多犄角旮旯的地址中储存了各种各样的命令处理器选项,它们之间的相互作用又如同迷宫一般。对于这个问题,幸好我们还有三个简化方法。一是使用Windows XP版的TweakUI,你可以从www.microsoft.com/windowsxp/pro/downloads/powertoys.asp下载,它能为自动完成功能提供一个非常广泛的按键选择。其他的Tweaking程序,如Winguides Tweak Manager也提供相似的功能。另一种冒险的选择是做好提前备份后直接修改注册表。进入HKEY_CURRENT_USER\Software\ & s4 n! s% ?; `8 I! M1 ^6 C# ~# V, x- N   Microsoft\Command Processor寻找名为“CompletionChar”的键值,如果没有,就创建一个同名的DWORD,将其键值设为9,也就是TAB键的代码。你也可以在HKEY_LO- 7 B( K! F0 L& J9 `' `* s* C2 v" \8 ^& U, a6 i   CAL_MACHINE\SOFTWARE\Microsoft\ - \3 ^2 }' H$ \2 H" ?0 v8 x( C# o- b3 n   Command Processor中重复这一过程,但你需要记住的是,HKEY_CURRENT_USER中的设定是总会优先于HKEY_LOCAL_MACHINE中的设定。   3 t# D1 d( F% _2 q$ t 3 x/ d& {% a; S; {, D: o  

! f. A) |6 ]! g6 f # Z8 [/ d% s. s! J: g

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

; J+ M. N& C) R# s( _* y

 另一个有用的参数是在“ /e:”后面加“on”或“off”.用来开启或关闭“扩展名命令”。这可以构成一系列便于使用的命令。举个例子,在使用CD(change directory变换目录)命令的时候,你不必在文件夹的名称前后打空格;你也可以在用MD(make directory建立目录)命令的时候建立多层目录;你也可以在相关的Windows应用程序里仅仅键入文件名来打开该文件。虽然扩展名是默认需要的,但这可以在注册表里关闭掉,因为这些参数通常直接覆盖注册表设置,所以使用参数也是一个改变设置的好办法(参见图4)。 ; w! n! w1 _ Q/ F- p6 b9 ]& m + s( B- n/ w/ ? O! L& `   

. ^9 b5 d6 e x- b* | 6 R- F* a0 c- w- ?7 _6 q

   % @8 o$ p4 n$ A! K1 _3 H) a6 j) v3 E 1 V0 ^* z4 u M3 g( O+ }+ q  一个值得注意的故事   6 `7 {8 g6 H3 Y o! y. E: W5 n! i1 ?' h. r+ g4 T0 V z8 ^( o+ h5 L0 N   一位读者的Windows XP系统的计算机在引导的时候有时候会启动帮助中心,然后就会重复这一过程,载入更多的帮助中心直到电脑死机。用MSCONFIG剔除所有涉及帮助的启动程序并查找微软知识库重命名了helpctr.exe之后,问题依然存在。这时他才发现,有时候F1键被卡住了没弹起来,而F1键正是用来启动帮助的。

# O1 ?( p" P2 x

 丢失的密钥  

+ ]6 V% C0 n3 c" M: ]

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

. v; D: |' `; n% f# r* s' d

  整理日志  

V" c4 N0 E' L+ R

  再来谈谈关于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