总结一下cmd中的dir命令的用法
64位win10系统上,打印帮助文档。
D: est>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: est>dir /b /s /o:n /a:a
D: esta.txt
D: est.txt
D: estc.txt
D: estaa.txt
D: est.txt
D: estcc.txt
说明:
/b表示去除摘要信息,且顶格显示完整路径
/s表示枚举嵌套文件夹中的内容
/o:n 表示根据文件名排序
/a:a 表示只枚举文件而不枚举其他
备注:单独dir /b与dir /s 都不会显示完整路径,只有这两个组合才会显示完整路径。
2、显示当前路径下所有文件的目录的绝对路径
D: est>dir /b /s /a:d
D: esta
D: est
D: estc
3、显示当前目录下所有的指定文件名称
当然这里也可以查找模糊查询,如*.txt
D: est>dir /p/s a.txt
驱动器 D 中的卷没有标签。
卷的序列号是 0006-7E93
D: est 的目录
2016/10/14 16:59 3 a.txt
1 个文件 3 字节
D: esta 的目录
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命令