В винде? Я не знаю "Переименователь файлов". Я бы использовал инструмент Total Commander "Multi Rename". Более того, я бы, вероятно, работал с perl или awk из терминала Cygwin для более полного решения сценариев. Это было бы слишком далеко для здесь, хотя. Просто с точки зрения регулярных выражений, это работает для меня в TC с вашим именем файла (но только если файлы не содержат лишних "-" или "." В полях исполнителя или названия песни), вероятно, должно работать в любом массовом переименовании с поддержкой регулярных выражений. инструмент без особых проблем, потому что я не думаю, что использовал какие-то продвинутые вещи из RegEx, такие как классы символов posix (":digit:" и тому подобное)...
Если вы используете TC, вы хотите установить флажки «[E]» и "RegEx" и снять другие три в части "Поиск и замена" инструмента Multi-Rename. Я сам проверил все это в TC, поэтому, пожалуйста, оцените время, которое я потратил на вас :) Если вы используете другой инструмент, и он не работает, поищите в справочной системе RegEx "обратные ссылки", поскольку некоторые инструменты, как правило, используют разные стандарты RegEx bacrefs. (Это $ 1 $ 2 $ 3 и т.д. В моем коде ниже, что относится к поиску в скобках).
ПРИМЕЧАНИЕ. Если вы собираетесь переименовывать, пожалуйста, ради бога, сначала сделайте резервную копию всей вашей коллекции. Никогда не знаешь. Я не несу ответственности, бла-бла.
ПЕРВЫЙ: сделать разделитель в {tracknr} _ {artist} "_-_" вместо текущего "_". Потому что «_-_» выглядит как полезный разделитель, который не часто случайно появляется в любом нормальном тексте. Также давайте уберем часть "_ {MP3COLLECTION}" прямо здесь.
search for: (([0-9]+)_)(.*)_(.*)(\..*)
replace with: $2_-_$3$5
Примечание: это предполагает, что вы включаете расширение файла в процесс переименования, и гарантирует, что вы сохраните это расширение, если у вас также есть файлы .ogg или что-то еще. Если ваш инструмент не включает расширение в процесс переименования, удалите последний "(\.. *)" из поиска и последние 5 долларов из замены.
Ваше имя теперь выглядит так: 1 _-_ Michael_Jackson _-_ Wanna_Be_Startin'_Something.mp3
ВТОРОЕ: теперь замените первое вхождение "_._" на "", а второе на "-":
search for: (.*?)_-_(.*?)_-_(.*)(\..*)
replace with: $1 $2 - $3$4
Примечание: Опять же, если ваш инструмент не включает расширение файла в процесс, удалите последний "(\.. *)" из поиска и последние 4 доллара из замены.
Ваше имя теперь выглядит так: 1 Michael_Jackson - Wanna_Be_Startin'_Something.mp3
ТРЕТИЙ И ПОСЛЕДНИЙ: просто замените "_" на «».
Ваше имя теперь выглядит следующим образом: 1 Майкл Джексон - Хочу начать что-нибудь .mp3
Удачи!
/edit: достаточно точности, чтобы убедиться, что все эти подчеркивания правильно отображаются в этом посте :)
/ редактировать 2: запоздалая мысль. Вы также можете добавить номера треков ниже 10 (т. Е. 0-9) к 0, так что вы получите 01, 02, ..., 09, 10, 11 и т.д., Что значительно упростит сортировку и значительно увеличит шансы на такие вещи, как телефоны или MP3-плееры для воспроизведения ваших треков в правильном порядке. Для этого:
Search for: (^[0-9] )
Replace with: 0$1