Board logo

标题: 如何统计一个文件夹里有多少个ASP,EXE,mdb [打印本页]

作者: dj0733     时间: 2007-2-12 02:32    标题: 如何统计一个文件夹里有多少个ASP,EXE,mdb

如题:

如C:\有50个txt,有20个asp 5个mdb 2个exe

如何用BAT统计后实现输出呢?
作者: namejm     时间: 2007-2-12 02:44

@echo off
for /f "delims=" %%i in ('dir /a-d /b c:\*.txt;c:\*.asp;c:\*.exe; 2^>nul') do (
    set /a num%%~xi+=1
)
for /f "tokens=2,3 delims==." %%i in ('set num.') do echo %%i 文件有 %%j 个
pause
[ Last edited by namejm on 2007-2-11 at 03:42 PM ]
作者: dj0733     时间: 2007-2-12 04:19
感谢.加分!
作者: dj0733     时间: 2007-2-12 04:24
如果没有就不显示....
作者: namejm     时间: 2007-2-12 04:44
  修正了一下错误,没有该类型的文件就不显示的需求也得到了满足。
作者: namejm     时间: 2007-2-12 04:57
  把2楼的代码稍微扩展一下,就可以做成分类统计某个目录、某个分区或全盘下的文件数目的代码。
作者: qingfushuan     时间: 2007-2-12 07:51    标题: 能解释一下

能解释一下set /a num%%~xi+=1是什么意思吗?
作者: anqing     时间: 2007-2-12 09:01
set /a num%%~xi+=1
已经统计出,所有的num。txt,或num。asp等于多少个了?
关于set num.这句没有见过
是指所有的num后缀名的集合吗?
作者: pyjhhh     时间: 2007-2-14 22:57
num. 没有环境变量怎么回事啊
作者: slore     时间: 2007-2-15 01:17
set num.表示列出变量中以 num.开头的变量和值

set dos.s=S
set dos.l=L

set dos.
将显示
dos.s=S
dos.l=L
作者: jmz573515     时间: 2007-2-15 08:11
版主的代码确实好,加分!