No Windows? Eu não sei "Bulk File Renamer". Eu usaria a ferramenta "Multi Rename" do Total Commander. Melhor ainda, eu provavelmente trabalharia com perl ou awk a partir de um terminal Cygwin para uma solução de script mais abrangente. Isso iria longe demais para aqui. Apenas a partir de uma perspectiva regex, isso funciona para mim no TC com seu nome de arquivo (mas somente se os arquivos não contiverem "-" ou "." Extras nos campos artista ou song title), provavelmente deve funcionar em qualquer renomeação em massa compatível com regex ferramenta sem muita dificuldade, porque eu não acho que eu usei qualquer coisa de fantasia RegEx avançada, como classes de caracteres posix (": digit:" e tal) ...
Se você estiver usando o TC, marque as caixas de seleção "[E]" e "RegEx" e desmarque as outras três, na Pesquisa & Substitua parte da ferramenta Multi-Rename. Eu testei essa coisa toda no TC, então, por favor, aprecie o tempo que eu levei para você :) Se você usar outra ferramenta e ela não funcionar, pesquise sua ajuda relacionada ao RegEx para "referências anteriores", pois algumas ferramentas tendem a usar padrões diferentes para Bacrefs RegEx. (É o $ 1 $ 2 $ 3 etc. no meu código abaixo que se refere a algo entre parênteses na pesquisa.)
OBSERVAÇÃO Se você quiser renomear em massa, por favor, pelo amor de Deus, faça um backup de toda a sua coleção primeiro. Nunca se sabe. Eu não sou responsável, blá blá.
PRIMEIRO: crie o separador em {tracknr} _ {artist} "_-_" em vez do "_" atual. Porque "_-_" parece ser um separador útil que não costuma aparecer acidentalmente em qualquer texto normal. Além disso, vamos apagar a parte "_ {MP3COLLECTION}" aqui.
search for: (([0-9]+)_)(.*)_(.*)(\..*)
replace with: $2_-_$3$5
Observação: isso pressupõe que você esteja incluindo a extensão de arquivo no processo de renomeação e garante que você mantenha essa extensão, caso você também tenha arquivos .ogg ou o que for. Se a sua ferramenta não incluir a extensão no processo de renomeação, remova o último "(\ .. *)" da pesquisa e os últimos $ 5 da substituição.
Seu nome agora parece com: 1 _-_ Michael_Jackson _-_ Wanna_Be_Startin'_Something.mp3
SECOND: agora substitua a primeira ocorrência de "_._" por "" e a segunda por "-":
search for: (.*?)_-_(.*?)_-_(.*)(\..*)
replace with: $1 $2 - $3$4
Nota: Novamente, se a sua ferramenta não incluir a extensão do arquivo no processo, remova o último "(\ .. *)" da pesquisa e os últimos $ 4 da substituição.
Seu nome agora parece: 1 Michael_Jackson - Wanna_Be_Startin'_Something.mp3
TERCEIRO E ÚLTIMO: Simplesmente substitua "_" por "".
Seu nome agora parece: 1 Michael Jackson - Wanna Be Startin 'Something.mp3
Boa sorte!
/ edit: bastante precisão necessária para garantir que todos esses sublinhados sejam exibidos corretamente neste post:)
/ edit 2: reflexão tardia. Você também pode querer preencher os números das faixas abaixo de 10 (ou seja, 0-9) com um 0, para que você obtenha 01, 02, ..., 09, 10, 11 etc. Isso torna a classificação muito mais fácil e aumenta enormemente as chances de coisas como telefones ou MP3 players para tocar suas faixas na ordem correta. Para isso:
Search for: (^[0-9] )
Replace with: 0$1