Я диджей и переименовываю 5000 музыкальных файлов для будущих концертов. Я ищу способ переименовать эти файлы в формате:
[artist/artists name] - [track title].[file extension]
в Нижнем регистре
А случайно нет возможности использовать метаданные для переименования имен файлов?
решение1
Exiftoolочень хорош в отношении переименования файлов на основе их метаданных. Если метаданные были правильно заполнены, ваша команда будет выглядеть примерно так:
exiftool "-Filename<[$Artist] - [$Title].%le" -api "Filter=$_=lc" DIR
Замените DIR на каталоги (один или несколько), которые вы хотите обработать. Добавьте -r
для рекурсии в подкаталоги. Если эта команда выполняется в Unix/Mac, поменяйте местами все двойные/одинарные кавычки, чтобы избежать интерпретации bash.
Чтобы убедиться, что эта команда выполняет то, что вам нужно, замените ее Filename
на Testname
, чтобы увидеть результаты без фактического переименования каких-либо файлов.
Разбор:
-Filename<
Указывает, что имя файла будет изменено. Знак «меньше» указывает, что значение нового имени файла будет скопировано из внутренних тегов файла.
[$Artist] - [$Title]
Формат имени файла с использованием тегов Artist
и Title
. Это могут быть либо ID3v1, либо ID3v2_3, возможно, и другие, согласно моим тестам.
.%le
- %e
сама по себе является специальной переменной exiftool для расширения файла. Размещение l
перед e
заставляет его быть строчными.
-api "Filter=$_=lc"
- Это фильтрует все выводимые теги по выражению perl после Filter=
. В этом случае он преобразует теги Artist
и в Title
строчные.