@echo off
chcp 65001
echo 以下为 %cd% 中的空目录检测结果 > 空目录检测结果.txt
for /f "tokens=*" %%i in ('dir /s/b/ad') do (
echo 正在处理中...%%i
dir /a/b "%%i" 2> nul | findstr /r ".*" >nul || (
echo %%i>> 空目录检测结果.txt
)
)
echo 检测完毕
notepad ./空目录检测结果.txt
del 空目录检测结果.txt``
- chcp 65001 设置utf-8编码解决中文乱码。批处理脚本也得是utf-8编码的
- for /f 这会让 in后的语句执行,将结果循环,而不是将语句当作字符串看待
- "tokens=*" 这将不会让语句执行结果中的空格中断当前行的输出(带空格的文件夹/路径)
- /a/b a全部 b简略模式
- findstr /r /r 正则模式
- 匹配到可见字符即文件夹非空
- 否则输入到结果文件中