最近想用dos命令打印指定目录下的所有文件夹的完整路径。最终发现可用dir命令来实现。在此学习下dir的各项命令。
32位win7系统上,打印帮助文档。
D:\test>dir /? 显示目录中的文件和子目录列表。 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4] [drive:][path][filename] 指定要列出的驱动器、目录和/或文件。 /A 显示具有指定属性的文件。 属性 D 目录 R 只读文件 H 隐藏文件 A 准备存档的文件 S 系统文件 I 无内容索引文件 L 解析点 - 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。 /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来 禁用分隔符显示。 /D 跟宽式相同,但文件是按栏分类列出的。 /L 用小写。 /N 新的长列表格式,其中文件名在最右边。 /O 用分类顺序列出文件。 排列顺序 N 按名称(字母顺序) S 按大小(从小到大) E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 - 反转顺序的前缀 /P 在每个信息屏幕后暂停。 /Q 显示文件所有者。 /R 显示文件的备用数据流。 /S 显示指定目录和所有子目录中的文件。 /T 控制显示或用来分类的时间字符域。 时间段 C 创建时间 A 上次访问时间 W 上次写入的时间 /W 用宽列表格式。 /X 显示为非 8.3 文件名产生的短名称。格式是 /N 的格式, 短名称插在长名称前面。如果没有短名称,在其位置则 显示空白。 /4 用四位数字显示年 可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
示例:
1、显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容
D:\test>dir /b /s /o:n /a:a
D:\test\a.txt
D:\test\b.txt
D:\test\c.txt
D:\test\a\a.txt
D:\test\b\b.txt
D:\test\c\c.txt
说明:
/b表示去除摘要信息,且顶格显示完整路径
/s表示枚举嵌套文件夹中的内容
/o:n 表示根据文件名排序
/a:a 表示只枚举文件而不枚举其他
备注:单独dir /b与dir /s 都不会显示完整路径,只有这两个组合才会显示完整路径。
2、显示当前路径下所有文件的目录的绝对路径
D:\test>dir /b /s /a:d
D:\test\a
D:\test\b
D:\test\c
3、显示当前目录下所有的指定文件名称
当然这里也可以查找模糊查询,如*.txt
D:\test>dir /p/s a.txt 驱动器 D 中的卷没有标签。 卷的序列号是 0006-7E93 D:\test 的目录 2016/10/14 16:59 3 a.txt 1 个文件 3 字节 D:\test\a 的目录 2016/10/14 16:59 3 a.txt 1 个文件 3 字节 所列文件总数: 2 个文件 6 字节 0 个目录 94,208,172,032 可用字节
嵌套文件夹下的所有的内容都被查询出来。