dir 命令不但可以查找和显示一个特定的文件,还可以显示一类文件。例如输入
dir *.bat,显示的就是所有扩展名是 bat 的文件。看下图
那这里的*是什么意思呢?在 DOS 命令中,*在文件名中出现是代表任意字符的意
思。例如,A.*就代表了文件基本名是 A,扩展名是任意的所有文件。那么 dir a.*
就是把文件基本名是 a 的所有文件都显示出来。如果用 dir A*.*,将会出现什么结果
呢?结果是显示了文件基本名以 A 开头的所有文件。再深入一点,dir *.*是什么意思
呢?在这里文件基本名和扩展名都是任意的,那就等于代表了所有文件,所以这和只
输入 dir 的作用是相同的。
因为*可以代替任意字符,所以我们称之为通配符。其实通配符不只*一个,现在
我们再来看看另一种通配符----?。
?通配符和*的区别是什么呢?*可以代替文件名中的多个字符,而?只能代替文件
名中的一个字符。比如 a*.*是代表所有文件基本名以 a 开头的文件,而 a?.*是代表文
件基本名只有两个字符,并且第一个字符是 a 的所有文件,同理 a??.*是代表文件基本
名只有三个字符,并且第一个字符是 a 的所有文件。
两者还有一个区别,在文件名中出现*后,其后的所有字符都不起作用,比如 A*.*
和 a*b.*是没有任何区别的,但 A*.*和 A*.com 就不一样了,因为中间隔了一个分隔
符,*的作用不能超过分隔符。
在作用不超过分隔符这一点 上,?和*是一致的,但是,无论在文件基本名或扩
展名中出现在?后,后面的字符仍然起作用。例如,a?.bat 和 a?b.bat 是不同的意思,
前者代表了文件扩展名是 bat,而文件基本名是两个字符,且第一个字符是 a 的所有
文件,后者代表了文件扩展名是 bat,而文件基本名是三个字符,且第一个字符是 a,
第三个字符是 b 的所有文件。
最后再讲一点吧,都差点忘了这个小问题了。在使用通配符时,文件基本名和扩
展名中最多只能各出现一个*,而?可以在不超过文件名和扩展名长度的前提下出现多
个。 例如:这三个文件名 a???.b??、 a????b?.?c?及??a?b??c.??d 都是可以的。