java批处理读取照片_〔批处理〕从数码相片得到照相时间

@ECHO OFF

SETLOCAL EnableDelayedExpansion

DEL /F /Q picture.txt 2>NUL

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::

:: 原理:

::

:: 一般情况下,有EXIF信息的照片,会有三处时间(当然还有特例),第一处格式为:

::

:: 2001:01:01 02:04:18

::

:: 第二、第三处是在一起的,中间有个NULL值,如下:

::

:: 2001:01:01 02:04:18[NULL]2001:01:01 02:04:18

::

:: 我通过WindowsXP和ACDSee8分析了很多张图片,发现第一处的时间很可能有误,

::

:: 也就是说,WindowsXP和ACDSee8实际使用的应该是第二或第三处的时间,

::

:: 使用第二处的时间。

::

::

:: 注意:

::

:: 1、有些人喜欢把一些秘密藏在图片中,而秘密有可能包含时间,所以,可能有问题,

::

::    不过,这种情况好像很少?

::

:: 2、由于FINDSTR.EXE命令的局限性(并非真正的正则表达式),错误是难免的。

::

::

:: 另外:

::

:: 1、开始我把*.jpeg也列入查找,但发现*.jpe可以搜索到*.jpeg,只好剔掉*.jpeg了

::

:: 2、我讨厌ACDSee8重命名时,把2001-01-01 02-01-19改成2001-01-01 2-1-19,不好看!

::

:: 3、其实我写这个的目的就是修改图片名称为照相时间,剩下的以后写

::

::

:: Author: NeedJava

::

:: Modified: 2007-08-15/2007-08-24/2007-08-25

::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

FOR /R %%a IN ( *.jpg *.jpe *.jfif *.tif ) DO (

CLS

ECHO 正在处理〔!%%a!〕

SET "final=NULL"

IF "!final!"=="NULL" (

SET /A times=0

FOR /F "delims=" %%i IN ( 'FINDSTR.EXE "200 199 201 202" "%%a" 2^>NUL ^| MORE 2^>NUL ^| FINDSTR.EXE /R "\" 2^>NUL' ) DO (

SET /A times+=1

IF !times! EQU 2 (

SET "parse=%%i"

IF "!parse:~-3,1!"==":" IF "!parse:~-9,1!"==" " (

SET "parse=!parse:~-19!"

ECHO Found [!parse!]

FOR /F "tokens=1,2,3,4,5,6 delims=: " %%A IN ( "!parse!" ) DO (

SET "final=%%A-%%B-%%C %%D-%%E-%%F"

)

)

)

)

)

IF "!final!"=="NULL" (

FOR /F "delims=" %%i IN ( 'FINDSTR.EXE /I "DateTimeOriginal" "%%a" 2^>NUL' ) DO (

SET "parse=%%i"

IF /I "!parse:~-24,7!"=="

SET "parse=!parse:~-49,19!"

ECHO Found [!parse!]

FOR /F "tokens=1,2,3,4,5,6 delims=-:T" %%A IN ( "!parse!" ) DO (

SET "final=%%A-%%B-%%C %%D-%%E-%%F"

)

)

)

)

IF NOT "!final!"=="NULL" (

ECHO Parse [!final!]

ECHO [%%~nxa]>>picture.txt

ECHO !final!>>picture.txt

ECHO;>>picture.txt

)

)

GOTO :EOF

@ECHO ON

剩下的就是改名了,由于要防备同名,也就是一秒内拍了两三张这样的情况,所以需要追加数字序列

posted on 2007-08-14 19:42 NeedJava 阅读(340) 评论(0)  编辑  收藏 所属分类: DOS Windows

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值