@echo off
:: 探测空文件夹
:: code by jm 2006-12-4
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /ad /b /s') do (
for /f %%j in ('dir /a "%%i"') do set /a num+=1
if !num! lss 8 echo "%%i" 下没有文件
set num=0
)
pause
[ Last edited by qingfushuan on 2007-3-6 at 05:49 PM ]作者: juventusryp 时间: 2007-3-7 07:24 当用DIR查询一个空文件夹时,显示的信息总共会是9行,至于第2个FOR用SET意思是当文件夹下有%%i这个文件就执行后面的SET语句使NUM自加1然后当SET小于8行的话就显示没有文件作者: qingfushuan 时间: 2007-3-7 07:32 谢谢你的热心回复,领教了,感谢作者: zhoushijay 时间: 2007-3-7 07:49 使用 dir /b 就不用这样了作者: qingfushuan 时间: 2007-3-7 08:24 是第二个for中用dir /b吗?试试先,作者: zhoushijay 时间: 2007-3-7 09:16 echo off
set num=0
for /f "delims=" %%i in ('dir /b /s /a-d e:\bat') do (for /f %%j in ('dir /b /a-d "%%i"') do set /a num+=1)
echo 此文件夹中有%num%个文件!
pause
文件夹的路径自己改下,不计算子文件夹的个数的作者: juventusryp 时间: 2007-3-7 10:31 @echo off
set flag=
for /f %%i in ('dir /a /b "目标文件夹"') do set flag=1
if defined flag (echo 文件夹非空) else echo 这是个空文件夹
pause
给个NA斑竹写的 更简洁的