Автоматически массово переименовывает файлы с правильным расширением.

У меня есть папка с несколькими типами файлов ( mp4, mp4, jpg, wma .etc), и эти файлы либо не имеют расширения, либо все испорченные расширения расширений, такие как mp3.mp3, mp3.jpg, или просто имя файла. Я читал, что exiftool или даже магию python можно использовать для назначения правильного расширения файла при понимании типа файла. Я ищу решение на основе exiftool, в котором эти файлы можно переименовать с правильным расширением файла.

например, имя файла (это файл mp3) имя_файла1.jpg (это снова файл mp3 с расширением jpg) имя_файла.mp3.mp3.mp3 (повторение расширения)


person Ved Varun    schedule 17.09.2016    source источник
comment
Кажется, это не вопрос программирования. Спросите на superuser.com.   -  person yole    schedule 17.09.2016


Ответы (1)


В самом простом случае попробуйте это (замените двойные кавычки на одинарные, если вы используете 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 добавит номер, если результирующее переименование будет дубликатом, например. имя файла.jpeg, имя файла-1.jpeg, … имя файла-n.jpeg.

Изменить: добавлен параметр -ext для работы с файлами без расширения.

person StarGeek    schedule 17.09.2016