Board logo

标题: [文本处理] 批处理如何统计修改时间相同的文件的数量? [打印本页]

作者: sjbit    时间: 2015-12-30 16:33     标题: 批处理如何统计修改时间相同的文件的数量?

目前遇到一个问题,问题情况如下:
相机会拍摄很多照片,现在需要统计同一修改时间的照片数量有多少?即 2015/12/30 16:20 拍摄的照片一共有60张,目前只能靠手动统计,想做出自动统计,并能生成到execl中。
没接触过批处理,不知道怎么办的? 大家给些思路。 我在论坛里有看到用xcopy命令的但是感觉改改也只能统计一个时间的文件,每次都要重新命令,不知道大家有什么解决办法。谢了。
作者: flyinnet9    时间: 2015-12-30 17:37

笨办法
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1,2,4" %%a in ('dir /a-d *.jpg^|find "."') do (
  4.   if not defined %%a%%b (
  5.     for /f "tokens=1,2,4" %%d in ('dir /a-d *.jpg^|find "."') do (
  6.       if "%%a%%b"=="%%d%%e" set /a n+=1
  7.     )
  8.     echo. %%a %%b共拍摄 !n! 张照片
  9.     set n=
  10.   )
  11.   set %%a%%b=1
  12. )
  13. pause
复制代码

作者: pcl_test    时间: 2015-12-30 19:48

水一发
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*.jpg) do (
  3.     set "wd=%%~ta"
  4.     set "wd=!wd:/=!"
  5.     set "wd=!wd:-=!"
  6.     set "wd=!wd: =@!"
  7.     set /a #!wd!+=1
  8. )
  9. set #
  10. pause
复制代码

作者: DAIC    时间: 2015-12-30 20:03

从相机里面导出的照片可以用 jhead.exe 获取到具体的拍摄时间,例如:
C:\>jhead 1.jpg | findstr "Date/Time"
Date/Time    : 2012:08:09 22:33:45

批量获取到的信息导入Excel之后就方便你排序等其它操作了:
  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  3.     set /p =%%i,<nul
  4.     jhead "%%i" | findstr "Date/Time"
  5. ))>"1.csv"
复制代码

作者: sjbit    时间: 2015-12-31 11:25

谢谢大家 我先试试 很有帮助。




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