巧用DOSKEY构造自己的DOS命令

Author: 杨进 Date: 1995-05-26

        创建一个DOSKEY宏定义是十分容易的,只需在DOSKEY后跟一个宏名,一个等号及要赋给宏的命令即可。你可以在一个宏中包含多个命令。各个命令之间用$T分隔,符号$1和$2与批处理文件中的参数%1和%2的作用一样,DOSKEY将把输入的命令行参数依次传递宏定义中相应的可置换参数,由于宏命令一直放放在内存之中,所以它的执行速度给比批处理快,而且如果你定义的宏与DOS内部命令相同,比如DIR,DOS将优先运行宏命令。
        下面是笔者经常使用的几个宏命令,供大家参考。
        1、DOSKEY FF=DIR $1 /S
        FF (Find file)用于查找当前目录及其子目录下的某个文件,显示出它所在的子目录名。
        2、DOSKEY FILECHK=COPY $1 /VUL
        这个命令用于文件检查,它把文件拷贝到空设备上,以验证文件能否正常读取
        3、DOSKEY HIDE=ATTRIB +H $1
        DOSKEY UNHIDE=ATTRIB -H $1
        这两个命令用于给文件加上(或除去)隐藏属性,你可以把一些不愿被DIR 列出的文件显示出来。
        4、DOSKEY  DDIR=DIR
        DIR后面加一个逗号是DOS 5.0以后版本中一个未公开的参数,其作用在于显示当前目录下的所有文件及其子目录,而不论其属性如何,这个命令常被我用来在想不起隐藏文件及目录名时进行查看。
        5、DOSKEY MCD=MD $1 $T CD$1
        在当前目录下建立一个子目录并马上进入这个子目录中间去是经常要作的操作。这个命令能够完成这一功能。
        6、DOSKEY XDEL=ATTRIB -H -S -R$1 $T DEL $1
        此命令可以删去具有任何属性的文件,比用PCTOOLS等工具方便多了。
        7、DOSKEY MDEL=FOR %%FIN ($*) DD DEL %%F
        它是一个可以一次删去多个指定文件的宏。比如说要删去所有*.BAK、*.TMP文件,可以键入MDEL *.BAK *.TMP。
        使用DOSKEY宏命令时,有两点要特别注意:一是宏定义的长度限制在最大命令行长度(127个字符)内,因此不能定义过长的宏(此时应选择用批处理), 二是宏定义是存放在DOSKEY内存缓冲区中的,这个缓冲区缺省大小为512字节。如不够用, 你可以在启动DOSKEY时把它开大一些,如DOSKEY /BOFSIZE=1024就开出了1KB 的绶存。
        由于DOSKEY缓冲区的内容一关机就会消失,最好能将你的DOSKEY宏放在一个批处理,(如AutoEXEC.BAT)中,另外,由于许多宏会用到DOS外部命令,应将DOS外部命令所在目录放在PATH所指定的路径中。
        (杨进)