用一条命令同时完成“转换为静态图片”和“重命名”这两个操作。这个过程将是无损的,并且 ExifTool 默认会为你的每个原始文件创建一个备份,非常安全。
你的需求可以分解为两个任务:
-
内容修改:移除视频流(通过删除
trailer数据),使其变为纯静态 JPG。 -
文件名修改:将文件名中的前缀
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 的文件。 -
.表示处理当前所在的整个目录。你也可以把它换成一个具体的文件夹路径。