求windows里批处理脚本:统计当前目录下所有文件数(包括子文件夹里的文件),文件夹数。

@echo off
for /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%i
for /f %%i in ('dir/s/b/ad^|find /c /v ".*"') do set d=%%i
echo 统计结果: 当前目录文件数:%f% 文件夹数:%d%
pause追问

为什么老是比相应的文件数多出一个来? 我建立个新文件夹,里面建立3个新文件,再把你的BAT放入其中,显示文件数为5个。应该是四个的,为什么多一个呢?用的win7旗舰版系统,无毒无害。

追答

@echo off
for /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%i
dir/s/b/a-d|find /n /v ".*"
echo 统计结果: 当前目录文件数:%f%
for /f %%i in ('dir/s/b/ad^|find /c /v ".*"') do set d=%%i
dir/s/b/ad|find /n /v ".*"
echo 统计结果: 当前目录文件夹数:%d%
pause
你自己看看能对上吗 ?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-11
@echo off
for /f "delims=" %%a in ('dir /s/b/ad') do set/a a+=1
for /f "delims=" %%a in ('dir /s/b/a-d') do set/a b+=1
echo.统计结果:当前目录文件数:%b% 文件夹数: %a%
pause>nul追问

为什么老是比相应的文件数多出一个来? 我建立个新文件夹,里面建立3个新文件,再把你的BAT放入其中,显示文件数为5个。应该是四个的,为什么多一个呢?用的win7旗舰版系统,无毒无害。

追答

晕,是因为这个批处理文件本身计入进去了呀。

追问

大哥,本身计进去也是4个啊,我只建立了3个新文件。那来的第五个呢?

追答

你是不是有隐藏文件,你看我测试的