|
经常和DOS命令行接触的朋友都知道,每次启动命令行时,命令提示符默认的是系统盘的根目录,如果你需要进入一个多层次的子目录时,就会觉得十分痛苦:你需要不停地用CD命令进行目录切换,非常麻烦,而且如果遇到长文件名或中文目录名时就更容易出错了。有没有好的方法能在需要的目录路径里产生一个DOS命令行呢?答案是肯定的,使用Powertoys等一类软件就可以轻松实现,但本文介绍的不是使用软件的方法,而是几 7 M: T- b# y* k: |, l$ T! v" L
种“徒手”方法,希望能给大家提供另外一种解决问题的思路。
+ j E. l; d3 T1 Q. s* A4 p 几种方法,都是通过这种途径解决问题:如果需要在某个文件夹中使用命令行,只需要在Windows资源管理器图形界面中选择该文件夹时右击鼠标并选择相应的命令即可执行(名字可以根据需要自己起),不必通过层层目录切换进入。下面具体介绍一下实现方法。
4 \' q. U. ~; v/ C) P) S4 W 导入REG文件法
# o; k" \: q5 P4 y3 T 4 \3 J% R: \5 }; R& b
打开记事本,在文本中输入以下内容,尽量避免输入错误: ) d7 g2 {1 N1 U7 U: d9 Z+ r
Windows Registry Editor Version 5.00 8 |9 X/ B1 A ~/ z/ M1 L$ \
[HKEY_CLASSES_ROOTDirectoryshellcmd]
6 M7 h* {( O; Q @="在这里打开命令行窗口" : q9 V2 Q# y. C3 v# f: s& |
[HKEY_CLASSES_ROOTDirectoryshell $ V1 q$ ?/ c1 u" x# k/ R
cmdcommand] 4 k% S5 K% M, T, ]
@="cmd.exe /k "cd %L""
# c- ~& S4 e h3 H/ O# |: P 9 X. J [) \+ v, Y$ j) G
1 z0 h$ i4 p: y" v/ v% d3 b) m
- A2 H5 P/ ?) ]
0 h; [8 `& W* p, n& [ 注意两段话中间必须有一空行,格式如图1所示,输入完成后另存为“在此使用命令行.reg”文件。保存方法是,选择记事本“文件”菜单中的“另存为”命令,在图2所示的对话框中,将保存类型选择为“所有文件”,在“文件名”中输入“文件名.扩展名”的形式后保存。随后双击运行这个reg文件进行导入,待导入完成后,再找一个深层的文件夹右击,怎么样,是不是出现“在此使用命令行”的选项? ! E- l a+ k. D
/ s/ a; W. S& r! C ) [3 ~, Z/ n* M
$ d- v9 n5 I6 p) r
修改注册表法 # e: r8 K3 ]2 q2 ?( C: n& S b# }
` K' V5 V9 F. c0 m) T( w# H! W 在“开始” “运行”中输入“Regedit”后回车,打开注册表编辑器,依次定位到“HKEY_CLASSES_ROOTFol-dershell”主键,然后在shell项上单击鼠标右键,选择“新建” “项”,将新建的项命名为“MS-DOS”。接着在刚建好的“MS-DOS”键上单击鼠标右键,选择“新建” “项”,将新建的项命名为“command”;然后选择此command子键,在注册表编辑器的右侧窗口中,双击名称下的“默认”,在数值数据中输入DOS命令行所在的目录,由于笔者使用的是XP系统,所以填写“d:windowssys-tem32cmd.exe”(如图3,大家可以根据自己的实际情况进行填写),然后点击“确定”,关闭注册表编辑器。下面测试一下,进入Windows资源管理器D盘中的Tools目录后,右击并选择“MS-DOS”命令,就出现了“D:Tools〉”。
. z2 L, l' d+ i1 A5 \
1 l4 ^' K$ Y: _ |" s) S 安装INF文件法
" v5 _9 o5 f& i# E$ p/ G5 l h$ @+ s
安装INF文件,可以达到同样的效果。下面打开记事本文件,输入以下代码: 5 p( [7 ?2 e1 r/ Z
" u+ w1 q2 Q3 w6 N6 B9 }. \& T. r [version] & N, _4 D9 B8 q7 N& `. t
1 X: S- v% q" _0 U9 U9 n/ E- Z+ m
signature="$CHICAGO$" , @- X) @; t, D1 w. r4 ?
4 f) }7 q% `. v { [CmdHereInstall] 7 ] P: r+ ]" n3 ]- C* W6 ]) [
! \( y! x9 c! ^4 R- J CopyFiles = CmdHere.Files.Inf
?) w: e0 @" c8 _
6 b* a4 V I8 `$ Y( R AddReg = CmdHere.Reg a8 o+ |. ^0 G R+ w
- F! W' m9 G& _ [DefaultInstall] 0 l; ^6 @- ~9 G4 q1 I/ [8 q
, d1 U7 H! f& h/ H4 z- z, F4 { CopyFiles = CmdHere.Files.Inf
5 w9 m- |* l' d6 t4 O: m: r% M9 Z4 w9 `2 ]& E$ n
AddReg = CmdHere.Reg - ~! X; W3 N2 M ~; Z+ [* ^# V
* \! |- { C/ Q4 ^: J0 w8 l- B- g [DefaultUnInstall] - K: k+ f. Q6 C0 i
3 m |, s8 n- c/ F, j* H# A
DelFiles = CmdHere.Files.Inf 8 z; d, m, w2 L% x" b" {; t0 T
- {3 G3 k4 _7 Z5 N4 r* x- f8 q
DelReg = CmdHere.Reg 0 G* a" R+ |8 m# H, |6 `2 d
1 R* X8 L! R2 S9 ?/ ]5 B5 }
[SourceDisksNames] 7 t9 A: a- W; V. ^ S& V9 @( H
% c- K M* s9 |0 Q- W
55="CMD Prompt Here","",1 $ E; @2 ]: x5 n+ V- }- Q3 r
$ I. e9 g) |; ^/ D" b7 l! i% h5 g [SourceDisksFiles] % N8 H) J1 Q9 M* e. S& z: ^( ]4 G
/ z \4 G* |" }( M- j
CmdHere.INF=55 3 J' w% T, f$ v* \; e% N
! C. x, {+ R% \5 w! ]* X8 t
[DestinationDirs] ( r, L! j4 \- K% q: b+ k& ~3 u
2 {+ ?$ F* i1 Z
CmdHere.Files.Inf = 17 # F0 C+ b% G8 F9 A* A
4 k* h. a: i& D! Z6 M [CmdHere.Files.Inf]
' [4 U( a' D4 j! k1 N3 q# z7 e. r. z
|* u( T! G; c" `( {9 { CmdHere.INF
! y: \% v& Y* [; N
3 L' M. ?! N3 }' h0 Y' J% o! M [CmdHere.Reg]
2 {* h9 ?) |" |: ]3 `9 v
; q! M$ ^* F" J2 O# Y HKLM,%UDHERE%,DisplayName,,"%CmdHereName%"
$ B% B% Q2 e0 H8 ?1 _" n. W( V) p* e
HKLM,%UDHERE%,UninstallString,,"rundll32.exe syssetup.dll,SetupInfObjectInstallAction DefaultUninstall 132 %17%CmdHere.inf"
+ y1 `% R P3 x% F- h% B0 ` C, b0 B H$ G
HKCR,DirectoryShellCmdHere,,,"%CmdHereAccel%"
+ k& ~! J5 S5 t% ?+ \! T8 F( ~6 m; e* k8 i' ]
HKCR,DirectoryShellCmdHerecom-
. G8 |& l# f9 ]
9 D* T) a& A8 x2 V$ r" v* z! N mand,,,"%11%cmd.exe /k cd ""%1""" ' @5 x, e* V& @. C) D$ B- X/ R* j
; G Z, k$ w( H8 j V2 L- [ HKCR,DriveShellCmdHere,,,"%CmdHereAccel%"
+ L9 E4 L8 e: `: F3 w$ y+ [! l2 D+ ]2 x& k @7 ?6 T+ g* b. b
HKCR,DriveShellCmdHerecommand,,,"%11%cmd.exe /k cd ""%1"""
+ E) ^% {4 A8 U- ?! I& l2 o8 ~, B: U8 ~
[Strings]
8 s' ^: s+ w3 K# I9 c; } z5 P% h( y: j. w! V% J* _
CmdHereName="CMD Prompt Here PowerToy" 3 m) P: `( m% U7 d( I
' a6 i0 H2 k7 C1 b9 h CmdHereAccel="CMD & rompt Here"
; } R9 B* V7 C& V& V9 N: P4 F, f2 B3 T+ f. A; H! B& K$ }! c$ B% T
UDHERE="SoftwareMicrosoftWindows
/ N, a+ w. y/ l. V; Q/ u7 i1 O ?3 x& K. C# X R
CurrentVersionUninstallCmdHere" ! _8 y% \% ?% W4 p& f: `: S3 K
: }8 Y4 ]4 M6 f
注意各段代码之间必须有空行,必须严格按照上文的格式。输入完后另存为CmdHere.inf文件。随后右击该文件,选择“安装”命令(图4),这样就为鼠标右键添加了一个CMD Prompt Here的命令。注意:本法适用于,WinNT/XP/2003等操作系统,如果使用的是Win9X或WinMe系统时,需要将上面的Windows NT替换成CHICAGO。 ! Q( \0 X& H$ V: Q; N5 d: F6 c) W
3 v# y c5 S0 t I
/ @( v! F$ i$ _( u: A0 D: `5 w4 }
小提示:如果你使用DOS命令行只是偶尔的情况,或者总对某一文件夹进行操作的话,不妨右击系统目录中的cmd.exe并选择“属性”命令,切换至“快捷方式”选项卡,在起始位置中输入你需访问的文件夹(图5所示),确定后即可。以后再运行cmd时,命令提示符都会默认在此目录下,即方便又实用。 , k3 H7 g( D% a
' @; I' N* b; d0 d
|