学习使用DOSKEY命令

Author: 黄中伟 Date: 1997-01-01

  DOSKEY是MS-DOS 5.0以上版本提供的一个实用性很强的内存驻留程序,加载后约占4KB内存。它不仅可以非常方便、灵活地调用和编辑历史命令,并且可以建立批处理和宏命令,这对广大DOS用户来说,确实方便了许多。

#2  一、DOSKEY命令的格式和用法
#3  [格式:]
  d:path\DOSKEY[/reinstall][/bufsize=size][/macros][/history][/insert][overstrike][macroname]=[text]
  其中:
  /reinstall:重新安装一份DOSKEY程序,并清理DOSKEY缓冲区
  /bufsize=size:指定用于存储命令队列和宏命令的缓冲区大小,其默认值为512字节,最小值为250字节
  /macros:显示所有宏命令,可缩写为/M,也可用“〉”将其输入到一个文件保存起来
  /history:显示所有历史命令,可缩写为/H,也可用“〉”将其输入到一个文件加以保存
  /insert:使键盘处于默认的插入状态
  /overstrike:使键盘处于默认的改写状态
  macroname=[text]:建立一条宏命令用来执行一条或多条DOS命令。其中macroname为宏命令名,由用户自己定义,text为一条或多条DOS命令
  /?:显示帮助信息
#3  [用法:] 
  使用时只要运行一下DOSKEY程序即可,至于参数和其他DOS命令一样,可以按需要单独或组合选择。

#2  二、历史命令的重复使用
  只要你运行了DOSKEY命令,在此后输入的所有DOS命令都将被按顺序记忆保存在DOSKEY缓冲区内,形成一个有序的命令队列,然后可以通过一些功能键对这命令队列中的任何命令进行调用或编辑后执行。
  下面提供一些常用的调用功能键及其用法。
  ↑:调用上一条DOS命令
  ↓:调用下一条DOS命令
  PgUp:调用运行DOSKEY程序后的第一条DOS命令
  PgDn:调用最后用过的一条DOS命令
  F7:显示命令队列中的所有命令及其序号,和DOSKEY/H的执行结果相似
  ALT+F7:从缓冲区中清除命令队列中的所有命令
  F8:查找和显示符合条件的命令。用此命令时先指定要查找命令的头一个或头几个字符,然后按F8键即可按序往前显示相匹配的命令
  F9:显示指定序号的命令,用F9之前可先用F7查看该命令的序号
  而当要执行一条和某一历史命令相近的命令时,同样需要先对此命令进行编辑,一些常用的编辑键如下:
  F1~F6:这6个功能键的功能与安装DOSKEY程序前一样
  ←:向左移动一个字符,但不会将此字符删除
  →:向右移动一个字符
  End:快速移动光标到命令行尾              
  Home:快速移动光标到命令行首
  编辑时为了使键盘处于默认的插入模式,可执行DOSKEY /insert命令,当然此时仍可以通过“INSERT”键来临时更换插入或改写模式。
  另外,运行了DOSKEY程序后,还可以将多条DOS命令放在一行内连续执行,而中间只须用Ctrl+T键分开。
  例如:DIR *.COM<Ctrl+T>PAUSE<Ctrl+T>DIR *.EXE

#2  三、宏命令的建立
  如果经常以某种参数运行某一DOS命令,或者经常执行某一条较长的DOS命令,则可用DOSKEY macroname=[text]命令把这些DOS命令定义为一个易记忆的宏命令,使之简单化,并且可将多个DOS命令放在一起,中间用$T分隔。
  例如:键入DOSKEY ML=MD ABC $T CD ABC $T COPY C:\*.COM,然后执行ML宏命令,则计算机依次执行建子目录、转子目录、拷贝文件等DOS命令。
  并且宏命令中也可象批处理那样使用替换参数,但要注意的是这些替换参数不是%1~  %9,而是$1~ $9。
  例如上述宏命令可用DOSKEY ML=MD $1$T CD $1$T COPY C:\*.COM来代替,但执行时须键入ML ABC。
  同时,在定义宏命令时,还有其他一些特殊的字符可用,提供如下:
  $G 重新定向输出,相当于“〉”
  $G$G 输出附加到一个文件的末尾,相当于“〉〉”
  $L 重新定向输入,相当于“〈”
  $B 将宏命令的输出作为另一个命令的输入,即管道功能,相当于“|”
  例如:DOSKEY AA=DIR/W *.COM $G ABC,执行AA宏命令后,ABC文件中存放的即为当前目录下所有的COM文件名。
  另外,由于宏命令只保存在内存中,因此关机后这些定义好的宏命令也随之消失。但用户可用“DOSKEY/M>filename”来加以保存,然后用EDIT命令或其他办法来编辑这个文件名,在每一行前加一个DOSKEY,下次开机后运行一下此文件名,即可执行这些宏命令。当然,在建立需要保存的宏命令前,最好先用ALT+F10删除缓冲区中所有宏命令,这样就可以将这些有保留价值的宏命令单独清楚地保存在文件中了。
  值得注意的是运行DOS时是按宏命令、COM、EXE、BAT的顺序执行同名程序的,并且DOS执行宏命令时,宏命令前不应有空格,而DOS命令是允许的。因此宏命令完全可以和DOS命令同名,执行时只要通过是否在命令前加空格,就可将它们区分开。