用一条命令同时完成“转换为静态图片”和“重命名”这两个操作。这个过程将是无损的,并且 ExifTool 默认会为你的每个原始文件创建一个备份,非常安全。

你的需求可以分解为两个任务:

  1. 内容修改:移除视频流(通过删除 trailer 数据),使其变为纯静态 JPG。

  2. 文件名修改:将文件名中的前缀 MV 去掉。

下面是能够一步到位的 ExifTool 命令。


一步到位的 ExifTool 命令

请根据你的操作系统选择对应的命令。

对于 macOS 或 Linux 用户:

Bash

exiftool -trailer:all= '-FileName<${FileName;s/^MV//}' -ext jpg .

对于 Windows 用户 (在 CMD 或 PowerShell 中):

PowerShell

exiftool -trailer:all= "-FileName<${FileName;s/^MV//}" -ext jpg .

Warning

主要区别在于 Windows 使用双引号 " 来包裹重命名参数,而 macOS/Linux 使用单引号 '


命令详解

  • exiftool:

    启动程序。

  • -trailer:all=:

    这是将动态照片变为静态照片的关键。它告诉 ExifTool 删除 (=) 文件中尾部 (trailer) 的所有 (all) 数据。由于视频就存储在这里,执行此操作后,文件就只剩下原始的、高质量的静态 JPG 部分了。这是一个无损操作。

  • ‘-FileName<${FileName;s/^MV//}’:

    这是实现重命名的核心,稍微有些复杂,但功能强大。

    • '-FileName<...': 这是 ExifTool 用于重命名文件的基本语法,意为“将文件名设置为…”。

    • ${FileName;...}: 表示基于当前的文件名 (FileName) 进行处理。

    • s/^MV//: 这是一个正则表达式替换。

      • s 表示替换 (substitute)。

      • ^MV 表示匹配开头 (^) 是 “MV” 的字符串。使用 ^ 可以确保只替换前缀,而不会误删文件名中间的 “MV”。

      • // 表示将匹配到的内容替换为空,即删除。

    • 综合起来:这部分的含义是“取当前的文件名,将开头的’MV’删掉,然后将得到的新字符串作为这个文件的新名字”。

  • -ext jpg:告诉 ExifTool 只处理扩展名为 .jpg 的文件。

  • .表示处理当前所在的整个目录。你也可以把它换成一个具体的文件夹路径。