【bat批处理】bat命令之dir命令
需要 提取 目录 及 子目录 下所有 文件名
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 用于多行分屏显示。
声明:本网站为“个人非营利性”网站,仅是博主与热心网友收集整理提供的经验记录和学习内容!本站文章图片来源于网络和AI,如有问题,可联系本站删除。
网站初心:一些棘手的、偏门的问题,能比较方便地在一个网站上查询、解决。
