Cómo cambiar el nombre del archivo usando CMD "Track?.mp3" a "T00?.mp3"

Cómo cambiar el nombre del archivo usando CMD "Track?.mp3" a "T00?.mp3"

Tengo varios archivos mp3 como este:

Track [number of track].mp3p.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.mp3se 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).

información relacionada