[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决] 批处理如何统计指定文件下图片文件的数量和有标记的图片的数量?

  1. @echo off
  2. set n=0
  3. set m=0
  4. for /f "delims=" %%a in ('dir /s /a-d /b *.jpg') do (
  5. set /a n+=1
  6. more "%%a" | find "rdf:Bag" >nul && set /a m+=1
  7. )
  8. set /a t=%n%-%m%
  9. echo 该目录下共有%n%张JPG图片,其中%m%张有标记,%t%张无标记>"共有%n%张JPG图片,其中%m%张有标记,%t%张无标记.txt"
  10. exit
复制代码
以上代码只能执行同一个目录下的有一个子文件夹下有好几个文件夹的批处理。

可否实现一个文件夹中有多个子文件夹,下面多很多很多个子文件夹都能通用的呢?需要改哪一个的代码?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

这句列举子目录下所有含标记的 jpg 文件,其他看着改吧
  1. @findstr /s /m "rdf:Bag" *.jpg
复制代码

TOP

回复 2# CrLf


    亲,能再详细一点么? 只改哪一句不行喔,还要改哪里呢? 因为是新手,求指教。

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('findstr /s /m "rdf:Bag" *.jpg') do set /a 含标记+=1
  3. for /f "delims=" %%a in ('dir /s *.jpg') do set /a 总数+=1
  4. set /a 无标记=总数-含标记
  5. echo 该目录下共有%总数%张JPG图片,其中%含标记%张有标记,%无标记%张无标记>"共有%总数%张JPG图片,其中%含标记%张有标记,%无标记%张无标记.txt"
复制代码

TOP

回复 4# CrLf


    亲,我测试了好几个文件夹,但数量都不一致,还有标记和没标记的数量都是错的。

TOP

回复 5# 228630386


    举个栗子?

TOP

回复 6# CrLf


文件中JPG总数是123张,有标记是78张,无标记是45张。

但得出来的结果是"共有148张JPG图片,其中78张有标记,70张无标记",只有有标记这一项是对的。

TOP

本帖最后由 CrLf 于 2015-3-25 17:56 编辑

那就这样,会慢点就是了
  1. @echo off
  2. for /f "delims=" %%a in ('findstr /s /m "rdf:Bag" *.jpg') do set /a 含标记+=1
  3. for /f "delims=" %%a in ('findstr /s /m . *.jpg') do set /a 总数+=1
  4. set /a 无标记=总数-含标记
  5. echo 该目录下共有%总数%张JPG图片,其中%含标记%张有标记,%无标记%张无标记>"共有%总数%张JPG图片,其中%含标记%张有标记,%无标记%张无标记.txt"
复制代码

TOP

回复 8# CrLf


共有201张JPG图片,其中78张有标记,123张无标记

得出的结果也是有问题,结果变成了总张数为无标记了,有标记也是没有错,应该再改一下就可以了,我也看到有点混乱了。

TOP

回复 9# 228630386


    是否少了一个搜索总张数的命令?

TOP

回复 10# 228630386


    哦,逻辑有漏洞,已修改

TOP

回复 11# CrLf

我测试好多几个大的文件夹,有些三个数都对得上。但有些只有JPG对得上,标记数量还是有问题,不知是图片标记问题还是其它原因,我们通常都是用中文或者英文去标记的,有些结果还是有出入。
正确:  共有459张JPG图片,其中84张有标记,375张无标记
命令:  共有459张JPG图片,其中91张有标记,368张无标记

有些出入会更大,文件夹中只有1张标记,但结果显示有251张。难道是图片的标记有问题?

TOP

回复 11# CrLf


    希望能可以做到100%准确,因为在Windows自带都可以做到,命令应该也可以吧? 但可能有难度吧。
   我检查了一下明明没有标记的图片,但又有记录在标记的数量上,也没什么特殊的。

TOP

回复 13# 228630386
你看看这样列出的有标记的图片跟实际是否对得上?对不上的打包共享网盘发出来看看
  1. @echo off
  2. (for /f "delims=" %%a in ('findstr /s /m "rdf:Bag" *.jpg') do set /a 含标记+=1 & echo %%a
  3. for /f "delims=" %%b in ('findstr /s /m . *.jpg') do set /a 总数+=1
  4. set /a 无标记=总数-含标记
  5. echo 该目录下共有%总数%张JPG图片,其中%含标记%张有标记,%无标记%张无标记)>统计信息.txt
复制代码

TOP

回复 14# pcl_test


    链接: http://pan.baidu.com/s/1jG3R6mi 密码: iehs
    我已经将有问题的图片上传到云盘中,图片共有57张JPG没错,但是图片一个标记也有没有,但两个命令都统计出了相同的标记数量,是图片的问题吗?

TOP

返回列表