标题: [文件操作] [已解决]批处理怎样递归统计文件夹及子文件夹的文件数量? [打印本页]
作者: waterwm 时间: 2011-3-22 00:17 标题: [已解决]批处理怎样递归统计文件夹及子文件夹的文件数量?
本帖最后由 waterwm 于 2011-5-11 00:56 编辑
我有下列桥文件夹
1号桥
2号桥
3号桥
4号桥
5号桥
6号桥
7号桥
8号桥
9号桥
每座桥文件夹里面有各个桥墩文件夹,1墩 2墩 …… 9墩 各墩台里有命名规则为 父文件夹.01.jpg格式, 如1号桥.01.jpg 1号桥.02.jpg等图片。
如何用批处理查找得到一个统计结果,只查找01编号的照片,如下所示:
1号桥 共2墩有照片
2号桥 共4墩有照片
3号桥 共6墩有照片
4号桥 共8墩有照片
5号桥 共3墩有照片
6号桥 共3墩有照片
7号桥 共4墩有照片
8号桥 共5墩有照片
9号桥 共8墩有照片
合计:43墩
以上桥的桥名及子目录名称,目录层深不固定,要用递归方式去查找。请各位帮忙!谢谢
要实现不论子目录在第几层深,都要能统计出来。
目前仅实现查找全部桥的合计墩台个数。- @echo off
- color 8f
- title 查找墩台照片数量
- cd %~dp0
- dir /W /B /S "" | find /C /N /I ".01.JPG">D:\_tmp.txt
- set /p c=<D:\_tmp.txt
- del D:\_tmp.txt
- cls
- echo.
- echo 共查找到 %c% 个墩台照片
- echo.
- pause
复制代码
作者: wc726842270 时间: 2011-3-22 03:02
本帖最后由 wc726842270 于 2011-3-22 11:04 编辑
- @echo off&setlocal enabledelayedexpansion
- set n=0
- if exist "%~pd01.txt" del "%~pd01.txt"
- for /l %%a in (1 1 3 ) do (
- cd /d "%~pd0%%a号桥"
- (for /f "delims=" %%i in ('dir /a-d /s *.jpg^|findstr /ic:"jpg"') do set /a n+=1
- )&echo %%a号桥 共有!n!照片 >>"%~pd0\1.txt"&&set n=0
- )
- pause
复制代码
理解的有些错误,
作者: 随风 时间: 2011-3-22 09:54
本帖最后由 随风 于 2011-3-22 09:56 编辑
- @echo off
- for /r %%i in (*) do (
- if /i "%%~nxi"=="01.jpg" (
- for /f "tokens=2 delims=\" %%j in ("%%i") do set /a .%%j+=1
- )
- )
- for /f "tokens=1* delims=.=" %%a in ('set .') do echo %%a 共%%b墩有照片
- pause
复制代码
作者: CrLf 时间: 2011-3-22 12:39
- @echo off
- for /f %%a in ('dir /s /b *.01.jpg') do set /a n+=1
- echo 共%n%墩有照片
复制代码
作者: caruko 时间: 2011-3-22 13:14
本帖最后由 caruko 于 2011-3-22 13:15 编辑
放在桥文件夹同一目录- @echo off&setlocal enabledelayedexpansion
- set /a m=0
- for /d %%d in (*) do (
- pushd "%%d"
- set /a n=0
- for /f %%i in ('dir /s /b *.01.jpg') do set n+=1
- set /a m+=n
- echo %%d 共!n!墩有照片!
- popd
- )
- echo 合计:!m!墩
复制代码
作者: waterwm 时间: 2011-5-11 00:56
- @echo off&setlocal enabledelayedexpansion
- set /a m=0
- for /d %%d in (*) do (
- pushd "%%d"
- set /a n=0
- for /f %%i in ('dir /s /b *.01.jpg') do set /a n+=1
- set /a m+=n
- echo %%d 共!n!墩有照片!
- popd
- )
- echo 合计:!m!墩
复制代码
上面代码测试成功。不过兄台少了一个 set /a n+=1 中的/a ,让我想了很久才搞明白,谢谢各位。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |