★使用多个FileName参数
可以使用多个FileName参数。用空格、逗号或分号隔开文件名。可以在FileName中使用通配符(?和*)来显示一组文件。
实例1:dir G: *.txt *.apk
★使用通配符
可以使用通配符,如星号(*)或问号(?),来代表文件名的一个或多个字符,以显示文件的子集或子目录。
星号(*):可使用星号代替任何字符串。例如
dir*.txt列出当前目录中所有具有以.txt开头(如.txt、.txt1、.txt_old)的扩展名的文件。
dirread*.txt列出当前目录中所有以“read”开头而且扩展名以.txt开头(如.txt、.txt1、.txt_old)的文件。
dirread*.*列出当前目录中带有任意扩展名的以“read”开头的所有文件。
切记,星号通配符总是使用短文件名映射,因此,您可能会得到意外的结果。例如,下面的目录包含2个文件,t.txt2和t97.txt:
您可能以为键入dirt97*会返回文件t97.txt。然而,键入dirt97*将返回两个文件,这是因为,文件t.txt2的短名称是T97B4~1.TXT,星号通配符使用其短名称映射,于是将文件t.txt2匹配到t97*。类似地,键入delt97*将删除这两个文件。
★问号(?):使用问号代替名称中的单个字符。例如,键入:
dirread???.txt列出当前目录中所有带有.txt扩展名而且以“read”开头并且后面最多跟三个字符的文件,包括Read.txt、Read1.txt、Read12.txt、Read123.txt和Readme1.txt,但是不包括Readme12.txt。
★指定文件显示属性
如果使用其Attributes中指定多个值的/a,则dir只显示那些带有所有指定属性的文件的名称。例如,如果使用/a:r-h或/ar-h指定/a,并以r和-h作为属性,则dir只显示非隐藏的只读文件的名称。
★指定文件名排序
如果指定了多个SortOrder值,dir首先通过第一个标准对文件名进行排序,然后再通过第二个标准排序,以此类推。例如,如果使用/o:e-s或/oe-s指定/o,并以e和-s作为SortOrder的值,则dir将根据扩展名对目录名和文件名从大到小进行排序,然后显示最终结果。按照扩展名字母顺序排序使得没有扩展名的文件名最先显示,目录名次之,然后是具有扩展名的文件名。
★使用重定向符号和管线
在使用重定向符号(>)将dir输出发送到文件,或者使用管线(|)将dir输出发送到其他命令时,请使用/a:-d和/b只列出文件名。可以使用FileName以及/b和/s来指定dir在当前目录及其子目录中搜索所有匹配FileName的文件名。Dir对查找到的每个文件名只列出其驱动器号、目录名、文件名和文件扩展名、每行一个路径。在使用管线重定向之前,应该在Autoexec.nt文件中设置TEMP环境变量。
注意:在XP中,TEMP环境变量已经被系统所设置。
★预置dir参数
我们可能经常使用DIR命令,但DIR命令的默认设置并不让人满意,我们可以自己来调整它的设置。
通过将带有DIRCMD环境变量的set命令包含在autoexec.bat文件中,可以预置dir参数。可以在setdircmd中使用dir参数的任意有效组合,其中包括文件的位置和名称。
例如,要使用DIRCMD环境变量将宽行显示格式(即/w)设置为默认格式,请在autoexec.bat文件中键入以下命令:
setdircmd=/w
对于dir命令的单次使用,可以清除DIRCMD环境变量的某个参数。为此,请在dir命令提示符下键入要清除的参数,并在参数前面加上减号。例如:
dir/-w
要更改DIRCMD默认设置,请键入:
set dircmd==NewParameter
新的默认设置对所有后接的dir命令有效,直到bat命令结束为止。
要清除所有默认设置,请键入:
setdircmd=
要查看DIRCMD环境变量的当前设置,请键入:
set
Set显示环境变量及其设置的列表。
注意:xp中系统本身并没有设置dircmd变量
示例
系统对dir的默认设置是不遍历子目录的,但是下面的实例2却可以通过set dircmd=/s来让“dir”命令可以遍历子目录。
实例2:
@echo off
set dircmd=/s
dir
pause
注意:dircmd=/s,在bat命令结束后就无效了。它应该和普通的变量一样。
▲要按字母顺序以宽格式一个接一个地显示所有目录,请确保根目录是当前目录,然后键入:
dir/s/w/o
▲Dir以w的方式列出根目录的名称、根目录中文件的名称(包括扩展名)。然后,dir列出该目录树中每个子目录包含的子目录名和文件名,然后再对子目录的子目录进行这样的递归。
要更改前面的示例,使dir显示文件名和扩展名而省略目录名。
实例3:
@echo off
dir /s/w/o/a:-d
pause
▲列出目录下所有的文件和目录的完整路径形式(包含子目录)。
实例4:
dir /s/b
▲列出目录下所有的文件的完整路径形式(包含子目录):
实例5:
dir /s/b/a:-d
▲列出目录下所有的目录的完整路径形式(包含子目录):
实例6:
dir /s/b/a:d
▲要打印目录列表,请键入:
dir>prn
指定prn时,目录列表发送到与LPT1端口相连接的打印机上。如果打印机连接在其他端口上,则必须使用正确端口的名称替换prn。
▲将dir命令的输出重定向到文件。可以通过用文件名替换prn,还可以键入路径。例如,要将dir输出定向到Records目录的Dir.doc文件中,请键入:
dir>\records\dir.doc
如果Dir.doc不存在,dir将创建该文件,除非Records目录也不存在。在这种情况下,会出现如下消息:
Filecreationerror
▲要显示驱动器C上所有目录中带.txt扩展名的所有文件名的列表,请键入:
dirc:\*.txt/w/o/s
Dir以宽格式按字母顺序显示每个目录中匹配文件名的列表,