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

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

[复制链接]
发表于 2015-3-25 20:30:48 | 显示全部楼层
回复 15# 228630386
嗯,是图片问题,19张的标记为空格,而系统把空格也当成没有,所以看上去是没有标记,但实际是有的
 楼主| 发表于 2015-3-25 20:55:21 | 显示全部楼层
回复 16# pcl_test


    请问有办法解决么? 因为我们通常都是用中文来标记的,但有些图片他来身自带空格,如果这也记录上,对我们统计数据带来不便。
发表于 2015-3-25 21:47:41 | 显示全部楼层
回复 17# 228630386
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. set m=0
  5. for /f "delims=" %%a in ('dir /a-d /s /b *.jpg') do (
  6. set /a n+=1
  7. set str=
  8. for /f "delims=" %%b in ('findstr "rdf:Bag" "%%a"') do set str=%%b
  9. set str=!str: =!
  10. if "!str:~-8,-1!" == "rdf:Bag" set /a m+=1
  11. )
  12. set /a t=%n%-%m%
  13. echo 该目录下共有%n%张JPG图片,其中%m%张有标记,%t%张无标记
  14. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-3-25 22:30:17 | 显示全部楼层
回复 18# pcl_test


    非常感谢,我明天回到公司再测试一下,辛苦两位大侠!!!
发表于 2015-3-26 00:12:28 | 显示全部楼层
来一个系统原生的办法
  1. 1>1/* :
  2. @echo off
  3. for /f "delims=" %%a in ('dir /a-d /b /s *.jpg ^| cscript -nologo -e:jscript "%~0"') do (
  4.         echo %%a>"%%a.txt"
  5. )
  6. pause & exit /b
  7. */

  8. var filelist = WScript.StdIn.ReadAll().split(/\r?\n/)

  9. var fso = new ActiveXObject('Scripting.FileSystemObject')
  10. var shell = new ActiveXObject('Shell.Application')

  11. var FLAG=0,NOFLAG=0

  12. for(var i in filelist){
  13.         var fullpath = fso.GetFile(filelist[i]).Path
  14.         var namespace = shell.Namespace(fullpath.replace(/[^\\]*$/,''))
  15.         var parsename = namespace.ParseName(fullpath.replace(/.*\\/,''))
  16.         var value = namespace.GetDetailsOf(parsename,namespace.GetDetailsOf('',18)==='标记'?18:5)
  17.         if(/\S/.test(value)){FLAG++}else{NOFLAG++}
  18. }

  19. WSH.Echo('该目录下共有'+(FLAG+NOFLAG)+'张JPG图片,其中'+FLAG+'张有标记,'+NOFLAG+'张无标记')
复制代码

评分

参与人数 2技术 +2 收起 理由
228630386 + 1 乐于助人
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-3-26 15:42:38 | 显示全部楼层
回复 20# CrLf


    但为什么有时候会弹出错误信息? exit,不能自动关闭窗口?
发表于 2015-3-26 16:02:58 | 显示全部楼层
回复 21# 228630386


    你改过代码了吧,我第 20 行没出现过 exit
 楼主| 发表于 2015-3-26 16:05:08 | 显示全部楼层
回复 18# pcl_test


    http://pan.baidu.com/s/1kT67xVh
    亲,代码又遇到另一个问题,明明有标记,又被记录成没有标记了,这是有问题的图片。
 楼主| 发表于 2015-3-26 16:08:03 | 显示全部楼层
回复 22# CrLf


    是喔,哪什么情况下可以自动关闭窗口呢? exit不可以的么?
发表于 2015-3-26 16:22:27 | 显示全部楼层
回复 24# 228630386
回复 23# 228630386
使用CrLf  20楼的代码,你要运行完退出,只要改第6行代码为exit即可,即去掉pause &
 楼主| 发表于 2015-3-26 17:26:01 | 显示全部楼层
回复 25# pcl_test


    非常感谢,终于可以了。代码在测试中,暂时没有问题。
发表于 2021-10-23 19:30:48 | 显示全部楼层
来学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:48 , Processed in 0.014760 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表