dir
学习目标:学会使用dir命令列出目录和文件
很多菜鸟都会疑惑,在Windows下可以打开“我的电脑”显示目录和文件,但在“黑乎乎”的命令行窗口中,应该怎么查看(
列出)目录和文件呢?这就需要使用DOS命令——dir。dir命令就像一个军队里的指挥官,他一声令下,所管辖的士兵就
得按照他的要求排列、报数。通过dir命令后的参数,我们可以让这些士兵(文件)按各种方式排列(按文件大小排列、按字
母顺序排列等)。
任务1:列出c:\windows下的目录及文件
dir c:\windows
命令讲解:dir命令最基本的使用方法即为“dir 要查看的目录或路径”,但这种方法有明显的缺点——当列表中的目录及文
件过多时就无法完全显示,形如刷屏,我们来看看任务2是怎么解决这个问题的。
任务2:分页列出c:\windows下的目录及文件
dir c:\windows /p
命令讲解:在刚才的基本使用方法的基础上,我们在命令最后加上一个参数“/p”(即“page”页的缩写),列文件时就会使用
分页显示方式,即列出一屏的目录及文件后,提示“按任意键继续...”,按任意键后则显示下一屏(见图1)。在“我的电脑”
中可以通过勾选“文件夹选项”中的“显示隐藏文件”复选框来查看隐藏文件,在命令行方式下应该怎么做呢?
任务3:列出c:\windows下的隐藏文件
dir c:\windows /a:h
命令讲解:在命令的最后加上参数“/a:文件属性”,就能显示出指定属性的文件(隐藏文件的属性为“h”,目录为“d”,系统
为“s”,只读为“r”)。但有的时候我们想看看目录下是否有一个特定名称的文件,却被文件列表中密密麻麻的文件名给挑
花了眼。怎么才能让文件能够像英文字典似的以字母顺序排列,以便于我们查文件呢?
任务4:以字母顺序列出c:\windows下的目录及文件
dir c:\windows /o:n
(见图2 按字母顺序排列的结果)
命令讲解:“/o:排序方式”参数指定了dir命令显示命令结果时的排序方式,排序方式设为“n”即代表按照文件名的字母顺序
排列(从A~Z,以此类推)。
小提示
★我们也可以指定排序方式为按照文件扩展名的字母顺序(如:dir c:\windows /o:e)来出特定扩展名的文件,同样的,
还可以使用文件大小等方式进行排序。
★“/o”和“/a”可以省略其后的冒号“:”,但之间不能留有空格,如“/o:n”省略后的形式应为“/on”。
中级老鸟做脚本
适宜人:有一定DOS基础的用户 本期脚本:制作用户指定的任意格式文件列表清单
脚本说明:每个人都有很多个人编辑或收藏的文件,如文本文件、Office文档、图形图像、音频视频文件。久而久之,文
件越积越多,查起来既费时又费力。为便于文
件检索,有时需要制作一份文件列表清单。为叙述方便,假设文件保存
于目录D:\myfolder,列表清单文件保存为C:\。如果需要保存在其他目录中,可在代码中用该目录名替换
D:\myfolder即可。
(插入图3 要在杂乱无章的文件夹中东西非常困难)
*以下任务中的代码在Windows 9x/Me/2000/XP/2003下通用
任务1:列出D:\myfolder目录下扩展名为doc的文件清单
第一步:打开“记事本”,输入下列内容并保存为MakeList.bat批处理脚本文件放置在D:\myfolder目录:
@echo off
dir /o:n /b *.doc > c:\
脚本讲解:关闭命令回显(关于回显命令echo可参考上期的《DOS快餐店》),按名称(字母顺序)输出文件扩展名为doc的
文件列表清单,保存到c:\。
小提示
★dir命令使用参数“/b”则表示只列出文件名。
★重定向符号“>”表示将其左侧的命令的输出结果(如上文即为dir命令列出的文件)写入到其右侧的文件中去。
第二步:打开目录D:\myfolder,双击MakeList.bat文件,运行该批处理脚本文件。
第三步:用“记事本”打开C:\文件,即可查看D:\myfolder目录下所有Word文档的列表清单。
(插入图4 生成的列表清单)
Just do it
替换批处理脚本文件的“doc”为其他文件扩展名,如“xls”则列出Excel文档。
这段脚本让我们能够很方便地生成目录下的文件清单,可是每次要生成清单前都必须将该脚本文件复制到要生成清单的
目录下,这未免有些麻烦。能不能让脚本文件能够像DOS命令那样支持参数呢?
任务2:支持参数的文件清单脚本
特别说明:该脚本的使用方法为“MakeList.bat 要列出的扩展名 进行操作的目录”(例如:MakeList.bat txt c:\windows)。
第一步:打开记事本,输入下列内容,然后保存为“MakeList.bat”批处理脚本文件,可保存于任意文件
夹,建议保存于“我
的文档”、“C:\”文件夹或其他盘根目录下:
@echo off
if {%2} == {} (set mypath=) else set mypath=%2\
dir /on /b %mypath%*.%1  > c:\
if errorlevel 1 echo 命令格式:makelist {文件扩展名} [驱动器:][路径] > c:\
脚本讲解:首先关闭命令回显。如果(即脚本中的“if”)检测第二个参数(%2表示第二个命令参数,即脚本进行操作的目录,
为防止目录参数为空字串,须在其两边加上大括号“{}”)是否为空(即在使用命令时没有指定第二个参数,如:MakeList
txt),为空则删除上一次设置的mypath环境变量(如果有的话),否则设置mypath环境变量(set命令用于设置环境变量)为
参数末端加一反斜杆(即%2\,如%2这个参数的值为“C:\test”,则变为“C:\test\”)。最后按文件名称的字母顺序输出
mypath中所含路径下指定扩展名(即由第一个参数%1指定)的文件列表清单
文件。如果不到文件或批处理命令参数错
误,则输出提示信息(echo后面的即为错误提示)。
第二步:打开“命令提示符”(Windows 2000/XP/2003)或“MS-DOS方式”(Windows 9x/Me)窗口,将当前驱动器和目录改变
到MakeList.bat批处理脚本文件所在目录。
第三步:假设现在要在目录D:\myfolder中列出文本文档(即*.txt)清单,则输入“makelist txt d:\myfolder”命令即可(不含引
号)。如果当前工作驱动器和目录已是D:\myfolder,只要输入“makelist txt”命令,效果一样。
现在赶快打开C:\文件查看列表清单文件,是不是很棒?
小提示
★在命令行状态下执行批处理命令时,不必键入最后的“.bat”扩展名,因为BAT文件的优先级要高于EXE和COM文件(即
如果同一目录下有a.bat、a.exe和a,在命令行下执行a,则系统会优先调用a.bat文件)。
★输入目录参数时不要加反斜杆,如“C:\test”而不能使用“C:\test\”。
★如目录名中含有空格或长命名,都必须在路径两边加上英文双引号,或者使用8.3规范(格式)。
高级专家来把脉
适宜人:已掌握各条DOS命令的高级用户 把脉对象:让dir列出带有指定关键字的文件
诊断结果:即使指定了字母排序显示方式,要在dir命令的一大堆结果中到所需的文件也是非常困难的,如果能让dir命
批处理文件怎么做
令支持关键字就能解决这个问题了。
方案:利用find命令配合出dir命令结果中含有指定关键字的文件名。可以使用管道“|”将dir的输
出作为其他命令的
输入参数。使用通配符(*或?)指定要显示的文件名或目录名(例:“dir *.txt”、“dir ????fan.*”)。下面以出c:\windows下
文件名中带有“win”关键字的exe文件为例解决这个问题。
dir c:\windows\*.exe | find "win"
(插入图5 指定关键字后运行的效果)
命令讲解:使用dir命令列出c:\windows下的所有exe文件,再将这个输出结果通过管道传递给find命令,由其对结果进行
二次加工,筛选出含有“win”关键字的那些行(find命令及管道的使用,我们将在今后的DOS快餐店中为大家详细讲解,敬
请关注)。
小提示
要了解dir命令的更多参数,可以在命令行窗口中输入“dir/?”(不含引号,替换其中的“dir”可以获得其他命令的用法)即可

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。