注意的是,在最壞的情況下,你可能需要改變的不僅僅是時間,而且日期,月份和年份以及(2010-01-01-00-10-10.jpg
例如將要成爲1999-12-31-23-10-10.jpg
)
如果忽略這個警告,這裏是批處理文件,它只允許你減少名稱的小時部分。
@echo off
setlocal
for /f "usebackq delims=|" %%f in (`dir /b *.jpg`) do call :ProcessFile %%f
goto :End
:ProcessFile
for /f "tokens=1,2,3,4,*delims=-" %%i in ("%1") do call :ParseName %1 %%i %%j %%k %%l %%m
goto :End
:ParseName
set /A NEW_HOUR=%5-1
if "%NEW_HOUR%" == "9" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "8" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "7" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "6" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "5" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "4" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "3" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "2" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "1" set NEW_HOUR=0%NEW_HOUR%
if "%NEW_HOUR%" == "0" set NEW_HOUR=0%NEW_HOUR%
set OLD_NAME=%1
set NEW_NAME=%2-%3-%4-%NEW_HOUR%-%6
echo Old name : %OLD_NAME%
echo New name : %NEW_NAME%
rem Do copy, rename or whatever you want to do
goto :End
:End
endlocal
非常感謝那些信息!我會研究並(可能)使用ExifTool。 – SRB 2011-01-11 22:23:58