总结一下cmd中的dir命令的用法
64位win10系统上,打印帮助文档。
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 可用字节
嵌套文件夹下的所有的内容都被查询出来。
4、遍历当前文件夹下的所有的文件名
@echo off rem 启用延迟变量 setlocal enabledelayedexpansion set /a v=1 for /f "delims=/" %%i in (‘dir /b/a-d/oN *.*‘) do ( set /a v+=1 @echo 第!v!个文件名:%%i ) pause
这里之所以使用/作为分割符,是因为文件名是不能使用/符号的。分割的必然得到的是一个完整的名称。如果只想得到文件名,去除文件后缀,可以进行如下修改:
@echo off rem 启用延迟变量 setlocal enabledelayedexpansion set /a v=1 for /f "delims=." %%i in (‘dir /b/a-d/oN *.*‘) do ( set /a v+=1 @echo 第!v!个文件名:%%i ) pause
这里使用"."作为分割符,就是为了就是为了只显示文件的名称,但是如果一个文件名中有几个“.”符号的话,那么上面这种方法就不适用了。
原文链接:windows的dir命令
原文地址:https://www.cnblogs.com/HDK2016/p/8727181.html
时间: 2024-10-11 13:16:03