求助:如何用BAT文件按创建日期整理iPhone照片并合并至相册
解决iPhone照片按时间整理并重命名的思路
一、核心提醒:优先用照片EXIF拍摄时间,别依赖系统创建时间
复制到Windows后的iPhone照片,系统创建时间大概率是你复制文件的时间,不是真实拍摄时间,用EXIF里的拍摄时间重命名,才能保证和你自己的照片按真实拍摄顺序准确合并。
二、最省心的方案:用PowerShell批量重命名(推荐)
PowerShell能直接读取文件的EXIF属性或系统属性,操作比BAT简单可靠:
打开PowerShell,导航到你的照片文件夹:
cd "D:\你的照片文件夹路径"执行重命名命令(按拍摄时间前缀命名,保留原文件名):
Get-ChildItem -Filter "IMG *.jpg" -Recurse | ForEach-Object { $exif = [System.Drawing.Image]::FromFile($_.FullName).GetPropertyItem(36867) $shootTime = [DateTime]::ParseExact([System.Text.Encoding]::ASCII.GetString($exif.Value).Trim(), "yyyy:MM:dd HH:mm:ss", $null) $newName = $shootTime.ToString("yyyyMMdd_HHmmss") + "_" + $_.Name Rename-Item -Path $_.FullName -NewName $newName }要是你的照片是HEIC格式,把
"IMG *.jpg"改成"IMG *.HEIC"即可。若不想依赖EXIF,想用系统创建时间,可简化命令:
Get-ChildItem -Filter "IMG *.jpg" -Recurse | Rename-Item -NewName { $_.CreationTime.ToString("yyyyMMdd_HHmmss") + "_" + $_.Name }
三、修正你原来的BAT命令问题
你之前的dir命令用了/b参数,这个参数会只输出文件名,不显示日期时间,导致生成的filelisting.txt没有时间信息,自然没法按时间排序重命名。修正后的命令:
dir /a /s /T:C /o:d > filelisting.txt
/T:C:按文件创建时间排序/o:d:按日期升序排列(加/o:-d为降序)- 去掉
/b:显示完整的日期、时间、文件名信息
但BAT处理字符串和日期非常繁琐,比如要提取日期列、处理含空格的文件名,远不如PowerShell省心,不推荐用BAT完成后续重命名操作。
四、可视化操作方案:用第三方图片工具(适合不想敲命令的情况)
FastStone Image Viewer、IrfanView这类免费工具都自带批量重命名功能:
- 打开工具,批量选中所有IMG开头的照片
- 找到「批量重命名」功能,选择按「EXIF拍摄日期」作为文件名前缀,设置格式如
yyyyMMdd_HHmmss,再保留原文件名 - 预览确认后执行重命名,操作直观不易出错
内容的提问来源于stack exchange,提问作者Chirag
相关产品推荐
相关产品推荐

