@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 "\<[1-2][0-9][0-9][0-9][:][0-1][0-9][:][0-3][0-9] [0-2][0-9][:][0-5][0-9][:][0-5][0-9]\>" 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!"=="</exif:" IF "!parse:~-30,1!"=="+" (
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 阅读(426)
评论(0) 编辑 收藏 所属分类:
DOS Windows