自動批次重命名具有正確文件副檔名的文件

自動批次重命名具有正確文件副檔名的文件

我有一個包含多種類型檔案(mp4、mp4、jpg、wma 等)的資料夾,這些檔案要么沒有擴展名,要么擴展名全亂,例如 mp3.mp3、mp3.jpg,或者只是檔案名稱。我讀到 exiftool 甚至 python magic 可用於在理解文件類型時分配正確的文件副檔名。我正在尋找基於 exiftool 的解決方案,其中可以使用正確的檔案副檔名重命名這些檔案。

例如 filename(這是 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處理沒有副檔名的檔案的選項。

相關內容