自动批量重命名具有正确文件扩展名的文件

自动批量重命名具有正确文件扩展名的文件

我有一个包含多种文件类型的文件夹(mp4、mp4、jpg、wma 等),这些文件要么没有扩展名,要么都是乱七八糟的扩展名,如 mp3.mp3、mp3.jpg,或者只是文件名。我读到 exiftool 甚至 python magic 可用于在理解文件类型的基础上分配正确的文件扩展名。我正在寻找基于 exiftool 的解决方案,其中可以使用正确的文件扩展名重命名这些文件。

例如文件名(这是 mp3 文件)filename1.jpg(这又是 mp3 文件,文件扩展名为 jpg)filename.mp3.mp3.mp3(重复扩展名)

答案1

我发现 Irfanview 会自动检测图像文件扩展名并提示我重命名它们

答案2

从该问题的另一份副本中重新发布了答案……

最简单的方法,试试这个(如果在 Mac/Linux 上,请将双引号改为单引号):
exiftool -ext "*" "-filename<$filename.$filetype" TargetDir
或者
exiftool -ext "*" "-testname<%f.$filetype" TargetDir

这将简单地将扩展名添加到 TargetDir 中的所有文件。要递归,请添加-r。如果已有扩展名,这将在错误扩展名的末尾添加正确的扩展名,例如 filename.mp3 将变为 filename.mp3.jpeg。

对于更复杂的版本,它会删除一些先前的错误扩展名,您可以尝试以下方法:
exiftool -ext "*" "-filename<${filename;s/(\.(mp3|mp4|jpe?g|png|wma|mov))*($)//i}%-c.$filetype" TargetDir
这将删除正则表达式中中心括号内的扩展名。%-c如果生成的重命名是重复的,则会添加一个数字,例如 filename.jpeg、filename-1.jpeg、...filename-n.jpeg。

编辑:增加了-ext处理没有扩展名的文件的选项。

相关内容