DOS Dir 命令行操作符语法解释与学习笔记

功能

Dir (directory) 命令 显示目录下文件及子目录的列表,若不接参数,默认显示当前磁盘卷标及序列号,接下来显示当前目录下文件及子文件夹列表,包含最近修改日期-时间-占用字节数量-名称. 对于文件,Dir命令包含显示它们的扩展名以及字节大小. Dir命令也显示文件及子目录的数量,累计字节大小,磁盘剩余空间等.

常用

比如想要获取某个文件夹和所有子文件夹下的文件清单,打开记事本,粘贴以下代码:

dir *.* /s/o/b/a-d-s >ListFiles.txt

然后保存为.bat结尾的批处理文件如ListFiles.bat,双击运行该文件即可获取文件清单,清单文件在批处理的同一个文件夹下,名字为ListFiles.txt


语法

dir [<Drive>:][<Path>][<FileName>] [...] [/p] [/q] [/w] [/d] [/a[[:]<Attributes>]][/o[[:]<SortOrder>]] [/t[[:]<TimeField>]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

参数

[<Drive>:][<Path>]		指定需要查看列表的盘符及路径.

[<FileName>]			指定需要查看列表的特定文件或文件组.

/p				每次显示一屏的列表,按任意键查看下一屏.

/q				显示文件所有权信息.

/w				以宽屏多列(需缓冲区宽度支持)格式显示目录及文件列表.

/d				按列排序文件及文件夹列表,宽屏多列显示.

/a[[:]<Attributes>]		仅显示指定类型的文件及子目录名称列表,
  				如果省略/a,则显示除系统及隐藏文件之外的列表;
  				若不接属性使用/a,则显示包含系统及隐藏文件的所有文件及目录列表

		下面为可用属性列表,冒号可省略,属性可任意组合,中间不加空格:
		d	目录
		h	隐藏文件
		s	系统文件
		l	重解析点
		r	只读文件
		a	预存盘文件
		i	无内容索引文件
		-	否定前缀

/o[[:]<SortOrder>]		依据排序指令输出列表,以下为可用属性列表(冒号可选):

		若未指定属性,dir /o默认按名称字母顺序排列
		n	名称字母顺序排列
		e	扩展名字母顺序排列
		g	组目录优先显示
		s	字节数从小到大排列
		d	最近修改时间从早到近排序
		-	逆序排列前缀

/t[[:]<TimeField>]		按时间属性排列,以下为可用字段:
		c	创建时间
		a	最近访问时间
		w	最近修改时间

/s				列出指定目录下所有文件,包含子目录

/b				只显示指定目录下的目录及文件名, /b将覆盖 /w

/l				以小写字母显示未排序的目录及文件列表

/n				显示按名称字母顺序排列列表

/x				在长名称前面增加显示短名称,名称字母顺序排列

/c				显示千位分隔符,已默认,不显示输入 /-c

/4				显示4位格式的年份

/?				显示帮助

备注

  • 若要使用多个文件名参数,用半角空格,逗号分号分隔每个文件的名称.

  • 使用通配符(*?)来表示文件名中的多个或一个字符,示例:

    dir *.txt
    dir read*.txt
    dir read*.*
    
  • 星号*通配符始终使用了短名称映射,因此使用它可能会得到意外的结果(如返回映射后的短名称对应文件),所以在使用删除命令del xx*xx时要格外小心.

  • 使用多个问号?通配符时,将返回问号通配最少到最多个数的情况,如read???.txt将返回Read.txt, Read1.txt, Read12.txt, Read123.txt, Readme1.txt等情况.

  • 指令中的多个属性一起使用时,将返回同时具备这些属性的文件,例如使用/a:r-h/ar-h将显示只读且非隐藏的文件.

  • 文件名排序问题

    • 有多个排序指令时,先按第一个条件排列再按之后的条件排列,最后输出结果,例如使用/o:e-s/oe-s将按扩展名再按占用字节从大到小排列.

    • 按扩展名排序会先显示无扩展名文件,紧接着目录和带扩展名的文件.

  • 重定向输出及通道输出

    1. 当您使用重定向符号(>)将dir命令的输出发送到文件或者其他命令的通道(|)时,使用 /a:-d /b命令只输出文件名称(不包含目录).

    2. 您也可以使用 /b /s命令行出指定目录下所有目录,子目录及文件的列表.dir命令将分行列出其查找到的文件驱动器号,目录名,文件名及扩展名.

    3. 当你使用通道将dir命令的结果输出到其他命令时,您需要在Autoexec.nt文件中设置TEMP环境为可用.

  • 可以在控制台中使用带不同参数的dir命令.


示例

  • 常用命令 只输出C盘Temp文件夹(包含子目录)下的文件名到C盘根目录下的Index.txt文件,并排序:

      dir C:\Temp /s/o/b/a-d-s >C:\Index.txt
    
  • 显示所有目录及文件,字母顺序排列,宽屏多列显示,单屏暂停,输入:

      dir /s/w/o/p
    
  • 更改上一个示例,dir命令输出文件名及扩展名,但省略目录名,输入:

      dir /s/w/o/p/a:-d
    
  • 打印目录列表,输入:

      dir > prn
    

    当指定 prn 时,目录列表将发送到连接到 LPT1 端口的打印机.如果打印机连接到另一个端口,则必须使用正确的端口名称替换prn.

  • 可以通过用文件名替换 prn 的命令重定向输出到文件,可以在其中键入路径.例如,要将 dir 命令结果重定向输出到Records目录下的文件 dir.doc 中保存,输入:

      dir > \records\dir.doc
    

    如果 dir.doc 不存在,dir命令将创建它,除非Records目录不存在,在这种情况下,将显示"文件创建失败"的消息.

  • 要在驱动器C上查找所有扩展名为.txt的文件,输入:

      dir c:\*.txt /w/o/s/p
    

    此命令将以宽屏多列格式,每个目录按字母顺序排列,单屏暂停的形式输出列表.


date: 2015-04-22

tags: Windows; DOS; cmd; shell; 文件;

posted @ 2020-04-15 19:39  MoonYear530  阅读(1217)  评论(0编辑  收藏  举报