当你在DOS提示符C:\下输入+PATH这个命令时,你认为结果会如何呢?是Bad command or filename呢?还是显示出路径呢?你可能说是前者,也可能说是后者,但你一定不会想到它的结果是莫名其妙把路径改成Path =H,可事实正是这样,这是我一次上机的一个+PATH命令误操作的结果。在排除了病毒作怪的原因后,仔细探索,竟然发现这个“+”起了非同寻常的作用DOS的使用。DOS的命令解释器COMMAND.COM竟把+PATH这个命令当成PATH=H来执行了。由于PATH是DOS的内部命令,于是想到DOS的其它内部命令是否也有类似的现象,逐个一试,如下的结果令人叫绝。

当你在提示符下输入+MD这个命令时,它在当前目录下会建立一个名为D的子目录,+CD便可进入这个子目录,再回到上级目录,输入+RD就可删除这个D目录(假设这个目录下你没有新子目录或文件),注意到H和D正好分别是PATH和MD,CD,RD的最后一个字母,于是输入+MKDIR,它又建立了一个R子目录,+CHDIR和+RMDIR也分别能进入和删除R子目录。于是恍然大悟,原来DOS在处理内部命令前加一个“+”的时候,都把命令的最后一个字母当作命令选项。

既然DOS有这个功能,那么下列这些命令的结果是理所当然的了。

+DIR跟DIR R的作用一样,当然+DIR,(注意这个“,”不能丢)这个命令不会把隐藏的R文件或子目录放过的。

+COPY L能把一个名为Y的文件复制一份并命名为L,+COPY CON能把这个文件显示在屏幕上。既然能对Y文件操作,那么当有一个Y.TXT文件时,怎么样实现这些操作呢?我们可以大胆地输入这样一个命令+COPY.TXT CON,结果怎么样?成功了!

+TYPE可以显示出当前目录下E文件的内容,当然E也可带TXT等扩展名。如+TYPE.TXT MORE。

这样,这个“+”的功能又得到了扩展,我们可以这样定义这类特殊的命令格式:

+内部命令〖适当的分隔符〗〖适当的字符串〗〖必要的命令选项〗。分隔符因命令的不同而异,如PATH可以接受“〖”、“〗”、“/”“\”、“:”、“;”和“.”等这些字符,而不能接受“{”、“}”、“<”、“>”和“,”等字符。例如,我们可以这样定义路径:+PATH;C:\DOS;C:\UCDOS;C:\WINDOWS,它的结果会产生PATH=H;C:\DOS;C:\UCDOS; C:\WINDOWS。

有几个特殊的命令,如DEL(或DELETE,ERASE)和REN(或RENAME),当在它们前面加上一个“+”时,它们分别把L(或E),N(或E)当作子目录而不当作文件来对待。+DEL命令的作用是在确认后删除当前目录下L子目录内的所有文件,也可以部分地删除文件,如+DEL \*.TXT,若L子目录不存在(它不会去理会当前目录下是否有L文件),则显示Path not found,类似的,REN(或RENAME)只能对N(或E)子目录下的一个指定文件改名,而不能对当前目录下的N(或E)文件改名,如+REN /A.WPS B.WPS。

除了DOS的这些文件操作命令之外,还有一类命令如:BREAK,DATE,TIME,VER,VOL等,在它们之前加一个“+”也可以使命令执行,但似乎没有多大意义。如输入+BREAK时显示Must specify ON or OFF,因为它把这个命令当作BREAK=K来执行了。当输入+DATE时则显示如下:Invalid,然后显示Enter new date,它把E当做你输入的新日期了!当输入+VOL和+VER也会出现相应的错误。

还有一个特殊的命令CLS,因CLS和CLS S的执行结果是一样的,所以+CLS也能清屏,只是稍显画蛇添足而已。

既然在DOS的内部命令前面加一个“+”能起到如此的作用,那么其它符号呢?经过我试验,发现冒号(“:”)也能起到同样的作用,即它也能加在DOS的内部命令前面使命令的最后一个字符作为命令参数。以上所有命令中的“+”均可以被“:”代替,这里不再赘述。

其实有时在DOS的命令中加上一两个符号起到非同寻常的作用,如DIR,(显示隐藏的文件和子目录)和ATTRIB,(取消当前目录下所有文件的所有属性,注意:这两个“,”不能丢)等,如果上机时稍微留心,不难发现DOS的这些秘密。