Ok, então aqui está o que eu fiz. Tudo foi feito com expressões regulares. Tenho 100% de certeza de que há uma maneira mais fácil de fazer isso do que isso, mas funcionou e eu tive que fazer isso apenas uma vez com um resultado tão bom.
Eu usei um aplicativo chamado Regex Buddy, mas você poderia usar qualquer editor de texto meio decente com suporte a regex.
Por favor, note que todos os seguintes Regexs são definidos de forma a ^ e $ correspondem a quebras de linha e o regex é processado linha por linha.
Eu peguei a lista de arquivos original:
F:\music\(Artist 1) - Song 1.mp3
F:\music\[Artist 2] - Song 2.mp3
F:\music\Artist 3 - Song 3 {remix}.mp3
e aplicou o seguinte regex a ele:
^.*\
replace with empty string
O que resulta em:
(Artist 1) - Song 1.mp3
[Artist 2] - Song 2.mp3
Artist 3 - Song 3 {remix}.mp3
Eu então apliquei
[\.\[\]\(\)\{\}]
replace with
\\(Artist 1\) - Song 1\.mp3
\[Artist 2\] - Song 2\.mp3
Artist 3 - Song 3 \{remix\}\.mp3
Quais resultados em
$\s
replace with
|
Eu então apliquei
\(Artist 1\) - Song 1\.mp3|\[Artist 2\] - Song 2\.mp3|Artist 3 - Song 3 \{remix\}\.mp3
Quais resultados em
.*
replace with
^.*\($0)$
Eu então apliquei
^.*\(\(Artist 1\) - Song 1\.mp3|\[Artist 2\] - Song 2\.mp3|Artist 3 - Song 3 \{remix\}\.mp3)$
Quais resultados em
dir /s/b > filelist.txt
Agora temos um regex super longo que incorpora todos os arquivos que estou procurando.
Agora, abra o prompt de comando, navegue até o diretor musical do tipo:
F:\music\(Artist 1) - Song 1.mp3
F:\music\[Artist 2] - Song 2.mp3
F:\music\Artist 3 - Song 3 {remix}.mp3
Quando o comando terminar, abra filelist.txt
e aplique o regex que construímos nele como uma pesquisa.
Ei, pronto! Todos os arquivos da playlist foram encontrados. Havia, é claro, alguns falsos positivos onde eu tinha nomes de arquivo duplicados, mas é bom o suficiente para me fazer balançar e não levo tanto tempo para alcançar (apesar de como parece)