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 可以撤销。

    按拍摄日期加序号命名:

    1. 勾选「使用正则表达式」(Use regular expressions),「搜索内容」(Search for)填 .*,即整个文件名;「匹配所有出现的对象」(Match all occurrences)保持不勾选。
    2. 「应用对象」(Apply to)选「仅文件名」(Filename only),保留 .jpg。
    3. 在下拉框中选择 EXIF/MDF 选项,并勾选「枚举项目」(Enumerate items)。
    4. 「替换为」(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 上用访达

    访达可以一次给多个文件改名,不用装软件:

    1. 选中这些 JPG,按住 Control 键点按其中一个,在快捷菜单中选取「重新命名」。
    2. 在「给访达项目重新命名」下方的弹出式菜单中,选一种方式:
      • 替换文本:比如在「查找」栏填 IMG_,「替换成」栏填 Kyoto_。
      • 添加文本:把文本加在当前名称之前或之后。
      • 格式:在「自定义格式」栏输入名称,选择把索引、计数或日期放在名称之前或之后,再输入起始数字。
    3. 点按「重新命名」。

    苹果手册没有说明「格式」里的日期取的是哪个日期。转换得到的 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。

    ← 全部文章