00.环境检测与配置(前置说明)
@echo off
解释:关闭回显,根据需要,也可以不关闭
chcp 936
解释:环境文本格式,936是帮助识别中文的,也可以设置位UTF-8对应的编码,根据需要设置。
%%与%
解释:对于在文本中出现的变量用%%,对于在命令行中出现的变量用%
%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
解释:文本的名称中取date函数第0位开始的4位,第5位开始的2位,第8位开始的2位,time函数第0位开始的2位,第3位开始的2位,第6位开始的2位,主要作用在于生成多个文本时,用时间来避免重复,加在文本名称里,也可以不加。
01.扫描当前目录创建目录清单
for /f "delims=" %%a in ('dir /s /b /ad') do (echo %%a >> "目录清单.txt")
解释:将dir /s /b /ad生成的目录,以空格为分隔符,遍历并进行变量赋值给%%a,将%%a追加写入目录清单.txt。
关于delims= 在这里指分隔符集。这个替换了空格和制表符的默认分隔符集。
关于dir的参数
/A 显示具有指定属性的文件。
属性 D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 I 无内容索引文件
L 解析点 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/S 显示指定目录和所有子目录中的文件。
02.扫描当前目录创建文件树结构清单
tree /f > 文件结构树清单.txt
解释:将文件的结构树覆盖写入文件结构树清单.txt
03.扫描当前目录创建空目录清单
for /f "delims=" %%a in ('dir /s /b /ad') do (dir /b "%%a" | findstr .>nul || echo %%a >> "空目录清单.txt")
解释:递归将所有的目录,遍历赋值给%%a。在%%a中查找文件,如果能找到,则执行 findstr .>nul扔掉文件,如果找不到,则执行echo %%a >> "空目录清单.txt"将该空目录写入空目录清单.txt
04.扫描当前目录创建目录授权清单
for /f "delims=" %%a in ('dir /s /b /ad') do (cacls %%a >> "目录授权清单.txt")
解释:扫描当前目录创建目录授权清单
05.扫描当前目录创建文件清单
for /f "delims=" %%a in ('dir /s /b') do (echo %%a >> "文件清单.txt")
解释:扫描当前目录创建文件清单
06.扫描当前目录创建目录结构清单
tree > 目录结构清单.txt
解释:将目录的结构树覆盖写入目录结构清单.txt