Tengo varios archivos mp3 como este:
Track [number of track].mp3
p.ej. Track 1.mp3
-Track 11.mp3
Quiero cambiarles el nombre a:
T00[number of track]
p.ej. T001.mp3
-T011.mp3
Intenté cambiar el nombre de 1 a 9 pistas con esto:
ren "Track ?.mp3" "T00 ?.mp3"
pero tengo espacio en el nombre del archivo ( T00 1.mp3
)
Actualización: estoy intentando escribir el código para eliminar espacio. Este es mi código.
@echo off
setlocal enabledelayedexpansion
for /r %%G in ("T00 ?.mp3") do (
pause
echo -----------------------In loop----------------------------
echo Working with "%%G"
pause
set str=%%G
echo str is = "%str%"
pause
set str=%str: =0% //replace " " with 0
echo 2str is = "%str%"
pause
ren "%%~G" "%str%"
)
El mensaje que recibí es:
-----------------------In loop----------------------------
working with "C:\test\T00 1.mp3"
str = ""
2str = ""
A duplicate file name exists, or the file
cannot be found.
.
.
.
No sé en qué me equivoqué, esta es la primera vez que uso Batch Script
Respuesta1
Usando PowerShell conReemplazo de expresiones regularesyCadena de formato
$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
}
Las partes clave son -replace "^\D+",""
las que buscan todos los que no son dígitos desde el principio del nombre del archivo (pero sin la extensión) y los eliminan. En segundo lugar, el script agrega tantos ceros como sea necesario con "{0:D3}" -f
. El descanso es algo fácil.
Leerambos vinculadofuentes si quieres saber más.
Old name New name
Track 1.mp3 T001.mp3
Track 11.mp3 T011.mp3
Track 111.mp3 T111.mp3
Editar:Se corrigió un pequeño error de RegEx. Antes 99 ballons 01.mp3
se convierte T9901.mp3
.
Ahora es01 » 001 » T001.mp3
Respuesta2
Si desea utilizar Linux o Mac OSX para resolver su problema, puede hacer:
count=1
for i in $(ls -v); do
number=$(printf "%05d" $count)
((count++))
mv $i T00$number.mp3
done
Lo he probado en 25 archivos que he creado previamente con este comando
for ((i=1; i<=25; i++)); do touch "Track $i.mp3"; done
Respuesta3
Si esto ayuda, Total Commander (Windows) tiene una excelente herramienta de cambio de nombre múltiple (seleccione los archivos deseados y luego presione Ctrl+M).