目录下所有图片按修改时间批量重命名

Posted BHY_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目录下所有图片按修改时间批量重命名相关的知识,希望对你有一定的参考价值。

背景:有很多不同来源的图片,命名格式差异很大,很多图片名没有包含时间信息,当拷贝这些图片到新的设备时,图片的创建时间会变成当前时间,导致既不能按时间排序,也不能根据文件名来识别图片日期,因此在导入到新设备前先批量处理不符合规范的图片名称,处理期间不处理IMG_开头的,因为这种图片是手机原相机拍摄的,后面已经包含了时间信息。

批处理文件,保存成bat


@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d /b') do (
:next
set "t=%%~ta"
@echo %%~nxa    %%~ta 
set "head=%%~nxa"
set "head1=!head:~0,4!"
if "!head1!" == "IMG_" (
@echo jump filename = %%~nxa
goto next
)
set "t=!t:~0,4!!t:~5,2!!t:~8,2!_!t:~11,2!!t:~14,2!"
if not "%~n0"=="%%~na" if not exist "IMG_!t!_1%%~xa" (ren "%%~nxa" "IMG_!t!_1%%~xa") else (
call :rennum "%%~nxa")
)
goto :eof
:rennum
set n=1
:loop
set "name=%~1"
set "ext=%~x1" 
if not exist "IMG_!t!_!n!!ext!" (ren "%name%" "IMG_!t!_!n!!ext!") else (
set /a n+=1
goto loop
)

以上是关于目录下所有图片按修改时间批量重命名的主要内容,如果未能解决你的问题,请参考以下文章

目录下所有图片按修改时间批量重命名

目录下所有图片按修改时间批量重命名

DOS按规则批量重命名所有(子)目录下文件

DOS按规则批量重命名所有(子)目录下文件

批量修改文件夹下的所有文件名称

批处理:批量重命名父文件夹下所有子文件夹里的文件