Board logo

标题: [文件操作] 【已解决】BAT如何统计文件夹下图片文件的数量? [打印本页]

作者: 001011    时间: 2013-10-30 14:47     标题: 【已解决】BAT如何统计文件夹下图片文件的数量?

本帖最后由 001011 于 2013-10-30 16:34 编辑

工作中需要转换图片格式,但是自动转换软件转换的时候会因为图片问题而不转换。这样就导致转换前和转换后的图片数量不一样多。现在只能一个个文件夹打开比对。非常繁琐。
能否有办法统计出文件夹下的图片数量(统计两次,一次转换前的文件夹、一次转换后的文件夹),这样比对就比较简单了。
文件夹为多级结构:
F:.
├─0101
│  ├─1
│  ├─2
│  └─D
└─0096
    ├─1
    │  ├─1
    │  ├─2
    │  ├─3
    │  ├─4
    │  ├─5
    │  └─6
    ├─2
    └─D
图片都放在最底层的文件夹
文件名是这样的:XMPG-2010-0096-01-01-001
图片格式:转换前有两种格式   .TIF或.JPG
转换后统一为:.pdf

非常感谢
作者: foxJL    时间: 2013-10-30 15:21

转换后的PDF保存在原文件夹里?
PDF文件是不是以前的文件名?
如果是这样那不如直接列出没有转换的图JPG或TIF文件。
作者: 001011    时间: 2013-10-30 15:25

转换后的保存在另外的文件夹(转换前和转换后)里面
但文件夹结构是一样的
文件名是一样的 除了后缀
作者: 001011    时间: 2013-10-30 15:30

本帖最后由 001011 于 2013-10-30 15:36 编辑

比对的话  最好是 按照图片文件名比对
比如
在转换后文件夹0096找到XMPG-2010-0096-01-01-001.PDF
再在转换前文件夹0096找XMPG-2010-0096-01-01-001(因为有两种图片格式,最好只比对文件名)
找到就OK  找不到记录下来

文件名是有规律的
XMPG-2010-0096-01-01-001
固定的项目名-固定的年度-项目编号-件号-图号-页序

XMPG-2010-0096-01-01-001
这个文件就是2010年度的0096号项目的第一件,放在0096号文件夹的1下面的1里面(因为是01-01)
XMPG-2010-0096-02-01-001
这个文件就是2010年度的0096号项目的第二件,放在0096号文件夹的2下面的1里面(因为是02-01)
作者: foxJL    时间: 2013-10-30 15:32

同一个文件夹里面的TIF和JPG文件有没有同名的可能性,
如果重名则无法判断PDF是哪张图片所转
作者: 001011    时间: 2013-10-30 15:35

绝对没有相同名字
作者: foxJL    时间: 2013-10-30 15:56

本帖最后由 foxJL 于 2013-10-30 18:48 编辑


c:\123\in为源文件夹
c:\123\out为目标文件夹
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f  "delims=" %%i in ('dir /a-d /b /s c:\123\in\*.jpg,c:\123\in\*.tif 2^>nul') do (
  3.   set fn=%%~dpni& set fn=!fn:c:\123\in\=c:\123\out\!
  4.   if not exist "!fn!.pdf" echo,%%i 未转换
  5. )
  6. pause
复制代码

作者: 001011    时间: 2013-10-30 16:29

非常感谢 达到预期了效果
想问一下  能否不对路径要求的那么严格呢
比如 in下面的0096  所有图片文件和out下面的0096 的所有图片进行比对  这样方便些
因为转换软件不能复制路径转换 结果转好的pdf是全部放在一个文件夹下面的  我还要一个个的分文件夹才能和转换前的文件夹结构一样,手工分文件夹如果疏忽了就有可能和原先的文件夹结构有区别  就会影响比对结果
作者: foxJL    时间: 2013-10-30 16:41

本帖最后由 foxJL 于 2013-10-30 18:46 编辑

你之前又说文件夹的结构是一样的,早这样说PDF都在一个文件夹那就更简单了
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f  "delims=" %%i in ('dir /a-d /b /s c:\123\in\*.jpg,c:\123\in\*.tif 2^>nul') do (
  3.   if not exist "c:\123\out\%%~ni.pdf" echo,%%i 未转换
  4. )
  5. pause
复制代码

作者: 001011    时间: 2013-10-30 17:00

非常感谢 辛苦了
作者: Batcher    时间: 2013-10-30 17:56

回复 10# 001011


    请点击9楼右下角的“评分”按钮
作者: 001011    时间: 2013-10-30 22:16

回复  001011


    请点击9楼右下角的“评分”按钮
Batcher 发表于 2013-10-30 17:56

我怎么不能评分呢 提交的就提示来路不正
作者: Batcher    时间: 2013-11-1 08:47

回复 12# 001011


什么浏览器?
退出,清空cookies,登陆。试试这样行不行
作者: 001011    时间: 2013-11-3 19:51

世界之窗浏览器  我刚刚换网又试了一下  还是不行
作者: Batcher    时间: 2013-11-3 21:11

回复 14# 001011


    IE或者火狐也有问题吗?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2