HEIC 转 JPG 后,如何批量重命名照片
最省事的做法是转换时就把名字定好:heicly 可以保持原名、加前缀,或给 JPG 按序号命名(photo-001.jpg、photo-002.jpg…),打包的 ZIP 用的也是同一套名字。已经转好的 JPG,在 Windows 上可以用微软的 PowerRename 或一段 PowerShell 脚本批量改名,在 Mac 上用访达自带的「重新命名」。想按拍摄日期命名,要读 JPG 里记录的拍摄时间,而不是文件日期。
哪种方法适合你
| heicly(转换时) | PowerRename(Windows) | PowerShell 脚本(Windows) | 访达(Mac) | |
|---|---|---|---|---|
| 需要安装 | 不需要 | PowerToys(微软出品,免费) | 不需要,Windows PowerShell 随 Windows 提供 | 不需要 |
| 能做什么 | 原名、前缀 + 原名、前缀 + 序号 | 查找替换、计数器、日期 | 脚本写什么就能做什么 | 替换文本、添加文本、名称 + 索引/计数/日期 |
| 能读拍摄时间 | 不能 | 能(EXIF) | 能(EXIF) | 苹果手册未说明 |
| 改名前预览 | 下载前随时可改设置 | 有预览,可撤销 | -WhatIf |
— |
第三方信息于 2026 年 10 月 31 日核对,来源列在文末。
方法 1:转换时直接设置文件名
下面的转换器在本页面中运行,照片在你的设备上转换,不会上传。
把多张 HEIC 或 HEIF 照片拖到这里
或
文件不会离开你的设备——一切都在你的浏览器里完成。转换过一次后,断网也能继续使用。
可一次选择多个 .heic 或 .heif 文件,两种文件可以混在同一批里。
提示:刷新或关闭页面会清除当前任务和结果。
加入照片后,列表上方会出现「下载文件名」下拉框,有三个选项:
- 保持原名(默认):IMG_0412.HEIC 变成 IMG_0412.jpg,只换扩展名。
- 加前缀:前缀加在原名前面,填
trip-得到 trip-IMG_0412.jpg。 - 按序号(001、002…):前缀加三位序号,前缀默认是
photo-(photo-001.jpg)。把前缀改成2026-01-15_,就得到 2026-01-15_001.jpg、2026-01-15_002.jpg…
这些名字的具体规则(2026 年 10 月 31 日在本站实测):
- 分隔符自己写。 前缀按你输入的原样使用,连字符或下划线要自己加。Windows 和 macOS 不允许出现在文件名里的字符(如
\ / : * ? " < > |)会被去掉,前缀最长 40 个字符。 - 下载前随时可以改。 改了设置,已经转换完的文件立刻换成新名字,ZIP 也用当前的名字。
- 序号按列表顺序排,同一个页面里跨批次接着往下数:第二批从 004 开始。刷新页面后重新从 001 开始。
- 不会互相覆盖。 同一批里两张同名照片会变成 IMG_0412.jpg 和「IMG_0412 (2).jpg」。
- 会记住你的选择。 设置保存在你的浏览器里(隐私政策中的
heicly-naming),下次打开沿用同样的命名方式。
heicly 的序号按列表顺序,不按拍摄时间。想按日期命名,可以每天或每个活动单独转一批、用日期做前缀,或者用下面的方法。
方法 2:Windows 上用 PowerRename
PowerRename 是微软 PowerToys 里的工具;PowerToys 是一组免费、开源的 Windows 实用工具,支持 Windows 10 和 11。在文件资源管理器里选中 JPG,右键选「使用 PowerRename 重命名」(英文界面为 Rename with PowerRename)。改名前,预览窗格会列出每个文件的新名字;改完后在资源管理器里按 Ctrl+Z 可以撤销。
按拍摄日期加序号命名:
- 勾选「使用正则表达式」(Use regular expressions),「搜索内容」(Search for)填
.*,即整个文件名;「匹配所有出现的对象」(Match all occurrences)保持不勾选。 - 「应用对象」(Apply to)选「仅文件名」(Filename only),保留
.jpg。 - 在下拉框中选择 EXIF/MDF 选项,并勾选「枚举项目」(Enumerate items)。
- 「替换为」(Replace with)填
$DATE_TAKEN_YYYY-$DATE_TAKEN_MM-$DATE_TAKEN_DD-${padding=3;start=1}。
确认预览窗格里的名字类似 2026-01-15-001.jpg 再执行。计数器对所有选中的文件连续编号。以上步骤依据微软文档整理,我们没有在 Windows 电脑上实际跑过,执行前请以预览窗格为准。注意:不带 DATE_TAKEN_ 的 $YYYY、$MM、$DD 用的是文件的创建时间,转换得到的 JPG 的创建时间是你保存它的时间。
方法 3:Windows 上用 PowerShell 脚本
下面的脚本读取每张 JPG 的拍摄时间(EXIF DateTimeOriginal),把文件改名为 2026-01-15_001.jpg、2026-01-15_002.jpg…,每天按拍摄先后从 001 编号。打开 Windows PowerShell,进入 JPG 所在的文件夹(例如 cd "$HOME\Downloads\photos"),粘贴脚本:
Add-Type -AssemblyName System.Drawing
$photos = foreach ($file in Get-ChildItem -File -Filter *.jpg) {
$img = [System.Drawing.Image]::FromFile($file.FullName)
try {
if ($img.PropertyIdList -notcontains 0x9003) { Write-Warning "No date taken: $($file.Name)"; continue }
$text = [System.Text.Encoding]::ASCII.GetString($img.GetPropertyItem(0x9003).Value).TrimEnd([char]0)
} finally {
$img.Dispose()
}
$taken = [datetime]::MinValue
if (-not [datetime]::TryParseExact($text, 'yyyy:MM:dd HH:mm:ss', [System.Globalization.CultureInfo]::InvariantCulture, 'None', [ref]$taken)) {
Write-Warning "Unreadable date: $($file.Name)"; continue
}
[pscustomobject]@{ File = $file; Taken = $taken }
}
$perDay = @{}
foreach ($p in $photos | Sort-Object Taken) {
$day = $p.Taken.ToString('yyyy-MM-dd')
$perDay[$day] = $perDay[$day] + 1
$newName = '{0}_{1:D3}.jpg' -f $day, $perDay[$day]
Rename-Item -LiteralPath $p.File.FullName -NewName $newName -WhatIf
}
- 先试运行。 带着
-WhatIf时,PowerShell 只列出会怎么改名,不真正执行。确认无误后删掉最后一行的-WhatIf再运行一次。 - 不会覆盖文件。 Rename-Item 不能替换已有文件,新名字已被占用时会报错,这个文件保持原名。
- 对还保持原名的文件运行。 如果文件夹里已经有 2026-01-15_001.jpg 这样的名字,新名字可能撞名,这些文件会保持原名。
- 我们没有实测。 脚本依据微软文档编写,没有在 Windows 电脑上实际运行过,务必先看
-WhatIf列出的结果。 - 没有拍摄时间的照片会跳过并给出警告。脚本用到 System.Drawing,适用于 Windows 上的 Windows PowerShell。
- 第一次使用时,先在文件夹的副本上运行。
方法 4:Mac 上用访达
访达可以一次给多个文件改名,不用装软件:
- 选中这些 JPG,按住 Control 键点按其中一个,在快捷菜单中选取「重新命名」。
- 在「给访达项目重新命名」下方的弹出式菜单中,选一种方式:
- 替换文本:比如在「查找」栏填
IMG_,「替换成」栏填Kyoto_。 - 添加文本:把文本加在当前名称之前或之后。
- 格式:在「自定义格式」栏输入名称,选择把索引、计数或日期放在名称之前或之后,再输入起始数字。
- 替换文本:比如在「查找」栏填
- 点按「重新命名」。
苹果手册没有说明「格式」里的日期取的是哪个日期。转换得到的 JPG,文件日期是保存时间,所以想按拍摄日期命名,在 Mac 上更稳妥的做法是按方法 1,转换时用日期做前缀。
好用的命名规则
- 按日期:
2026-01-15_001.jpg。 年-月-日的写法在任何文件列表里按名称排序就是时间顺序。在 heicly 里选「按序号」、前缀填2026-01-15_;转换之后可以用方法 2 或方法 3。 - 按活动:
Wedding_001.jpg。 在 heicly 里选「按序号」、前缀填Wedding_,或用访达的「格式」。 - 保持原名,只改扩展名。 这正是 heicly 的默认做法,IMG_0412.HEIC → IMG_0412.jpg,方便和 HEIC 原图一一对应。
为什么不用文件日期?转换器保存出来的 JPG 会得到新的文件日期,拍摄时间则记录在文件内部:heicly 输出的 JPG 保留拍摄时间和相机信息,拍摄位置(GPS)只有勾选「同时保留拍摄位置(GPS)」才保留。heicly 输出的 PNG 和 PDF 不带 EXIF,按拍摄时间改名要用 JPG。
来源
2026 年 10 月 31 日核对:苹果在 Mac 上给文件、文件夹和磁盘重新命名;Microsoft Learn 的 PowerRename、PowerToys、What is Windows PowerShell?、Rename-Item、Image.FromFile 和 PropertyItem.Id。
小结
- 步骤最少:下载前在 heicly 里选好命名方式,ZIP 里也是同样的名字。
- Windows 上按拍摄日期命名:用 PowerRename 的
$DATE_TAKEN_系列变量,或上面的 PowerShell 脚本。 - Mac 上:用访达的「重新命名」替换文本、添加文本或编号。
一次要转很多张,见如何批量把 HEIC 转成 JPG。