我为了查找F:\update\路径下有多少文件夹以及文件夹的名字
set BaseUrl_Update=F:\update\
for /f %%s in ('dir %BaseUrl_Update% /b/a:d') do ()
把查找过程中的知识点做个记录,如下
/s 查找当前目录以及所有子目录下的文件
/b 舍弃标题与摘要内容
/d 跟宽式相同,但文件是按栏分类列出的。
/n 长列表格式 即 竖立格式 与光杆dir 下无异
/b /a:d 指定显示所有具有该属性的文件
/b /d&/w 交互使用时,/d&/w 开关 无效。
/q 显示文件所有权信息、或者说文件所有者信息
/w 宽行格式显示 X轴序列 文件名过长 无效
/d 宽行格式显示 Y轴序列 文件名过长 无效
/d & /w 会在在文件夹的前后添加"[]"X
/l 所显示文件名,全部为小写英文字母。
/c&/-c 禁用文件大小显示千位数分隔符。默认显示分隔符“,” /-c 不显示分隔符。
/a:d 只显示文件夹(包括隐藏文件夹)
/a:h 只显示隐藏文件 (包括具有当前属性的其他三种文件、夹)
/a:r 仅显示只读文件(包括具有当前属性的其他三种文件、夹)
/a:s 仅显示系统文件(包括具有当前属性的其他三种文件、夹)
/a:a 只显示存档文件- - X----- 只显示文件 (包括具有存档属性的其他三种属性文件) 这个命令对应 /a:d 只显示文件夹。
windows中文件共有四种属性、
分别为 存档、只读、系统、隐藏
/O 用分类顺序列出文件。
排列顺序 N 按名称(字母顺序)
S 按大小(从小到大)
E 按扩展名(字母顺序)
D 按日期/时间(从先到后)
G 组目录优先
- 反转顺序的前缀
/o 开关解读
/o:n_/o:name 按名称(字母顺序)列出文件 dir 默认显示如此 可以舍弃
/o:s_/o:size 按大小 (从小到大)列出文件
/o:e_/o:extension 按扩展名 (字母顺序)列出文件
/o:d_/o:date 日期/时间 (从先到后) 列出文件
/o:g_/o:group 组/组目录优先 列出文件
顺序排列为依次命令
因此 可以这样讲他们的优先顺序为
g>d>e>s>n
组>日期>扩展名>大小>名称
例如
dir /b /ad /ods 显示为 /od 顺序
dir /b /ad /osd 显示同样为 /od 顺序
dir /b /oeg 则显示为g 顺序
这个可以进行多次测试
我们大概的来对这个开关进行一个梳理
/on /os /oe /od /g
dir 默认的显示格式为 字母顺序 /on可以抛弃 但是尽量书写
1、字母顺序 2、文件大小~从小到大 3、扩展名字母顺序 4、日期顺序 5、组目录优先
-1、反转字母顺序2、从大到小3、扩展名字母顺序反转4、日期由最近的时间往前推5、组目录靠后
但是 同样也说明了一条
就是 /o 作为一个显示顺序的开关 我们只要为它指定一个参数便可以
- 反转顺序 =。= 就是从小到大-从大到小 字母顺序-侧从最后一个字母向前列出 日期/时间-由最近的时间向以前推 组/组目录-排在最后= 。= 完
/t 命令 解析
/T 控制显示或用来分类的时间字符域。
时间段 C 创建时间
A 上次访问时间
W 上次写入的时间
dir /t:c 文件创建日期? 开始创建的时间
dir /t:a 上次访问时间? 最近打开的时间
dir /t:w 上次写入时间? 最近内容更改的时间
实验得出结论,dir /t:c or /t:a 都显示为开始创建的时间
也就是说 /t:a 的命令开关无效 而不加命令的 dir 显示这些开始创建的时间
所以 基本可以判定 /t:c /t:a 命令无用。
dir /t:w 确实可以查看到 最近内容更改的时间。有点用吧= 。=
:: 针对个体文件 dir filename dir 后续文件名可直接查看最近一次更改日期
so: dir /t:w 适用于群体文件~
要求: dir 命令
1、只显示文件不显示文件夹
dir /a:a or /aa
dir /a:-d or /a-b
2、将各个文件、夹 小:上_大:下 的方式显示出来 不显示标题信息 以及摘要
dir /b /o:s
3、要求仅显示txt文件,并按文件大小(从小到大)的顺序排列
dir /o:s *.txt
4、显示.txt文件最近更改的日期 时间由近及远 列表方式显示
dir /t:w /o:-d *.txt
可以查看到~ 养成习惯,以后打开文件后,稍作改动即可 可添加.代表最近一次改动 或者“ ”打出空格,提示保存时,直接保存。
5、下面问题来了 只显示文件(不显示系统、只读、隐藏) 不显示文件夹 该怎么写呢?
dir /a:a-h-r-s
同理 /a /o /t 开关 都可以如此使用
6、显示列表文件名在前 状态时间信息在后
/x /n 有异曲同工之理
dir /x /-x 无差别
dir /-n 显示列表文件名在前 状态时间信息在后 但文件名显示为"8 3"格式 长文件名显示不完全
dir /-n /x 忽略/n 开关 与/x 无差别
dir /-n /o:-d >2.txt
dir /-n /a:a-h-s-r /o:-d /t:w /l >3.txt
列表文件名在前 状态时间信息在后
文件名为短文件名映射
不显示系统、隐藏、只读文件
不显示文件夹
时间按由近及远的顺序由上而下排列
显示内容最近更改的时间
dir 查找文件名 并显示
文件名 包含文件名 文件名后缀(又叫扩展名)
@echo off
dir /s /b /l /aa-s-h-r /tw /o-d *.txt >2.txt
findstr /f:2.txt /im "dir" >3.txt
dir /s /b /l /aa-s-h-r /tw /o-d *txt *cmd >4.txt
dir /s /b /l /aa /tw /o-d *mp3 >5.txt
dir /s /b /l /aa /o-d e:\music集中文件\*lrc *txt *cmd >5.txt
dir /s /b /l /aa *mp3 e:\music集中文件\ >6.txt 当前命令会忽略*mp3
显示e:\music集中文件\ 下所有文件
所以谨记 书写命令的格式 命令 命令开关 路径 >导出文件
dir /w /p & dir /p /d≤5 用于多行分屏显示
完。
网友评论