Usando o PowerShell com Substituir e Formatar string
$strPath = "C:\my\folder\*.mp3"
Get-Childitem $strPath | ForEach-Object {
$onlyNumbers = $_.Basename -replace ".*\D+",""
$WithZeros = "{0:D3}" -f [int]$onlyNumbers
$fileName = "T$WithZeros.mp3"
Rename-Item $_ $fileName
}
As partes principais são -replace "^\D+",""
, que pesquisa todos os não dígitos desde o início do nome do arquivo (mas sem a extensão) e os remove. Em segundo lugar, o script anexa quantos zeros forem necessários com "{0:D3}" -f
. Resto é coisa fácil.
Leia ambos link de fontes, se você quiser saber mais.
Old name New name
Track 1.mp3 T001.mp3
Track 11.mp3 T011.mp3
Track 111.mp3 T111.mp3
Editar: Corrigido pequeno erro de RegEx. Antes que 99 ballons 01.mp3
se torne T9901.mp3
.
Agora é 01 » 001 » T001.mp3