Podría hacerse partiendo de una lista en un archivo de texto. Pero la forma de hacerlo puede depender del carácter separador que en esa lista se utilice para separar el nombre actual del nombre futuro.
Supongamos que la lista fuera:
Juan juanito
Rosa rosita
Pedro pedrito
Que querría decir que el archivo juan.mp3 queremos que pase a llamarse juanito.mp3 y así sucesivamente.
Esto podría hacerlo:
@ECHO off
IF "%2" == "" GOTO ayuda
FOR /F "tokens=1,2" %%A IN ('type %2') DO (ren %1\%%A.mp3 %1\%%B.mp3)
GOTO :FIN
:Ayuda
ECHO Renombra los archivos existentes en una carpeta
ECHO Usa la lista que se facilita
ECHO Formato: %0 Carpeta ListNomb
:FIN
Si los nombres pueden incluir espacios entonces el carácter separador del FOR no podría ser el espacio y habría que trabajar con un separador de tu elección (que no podría formar parte del nombre de los archivos a renombrar). Supongamos que eliges como separador el ";" y que la lista fuera
pp kk;pepito perez
juan;juanito sandia
rosa mm;rosita
que querría decir que el archivo "pp kk.mp3" lo quieres renombrar a "pepito perez.mp3" y así sucesivamente ("juan.mp3" a "juanito sandia.mp3" y "rosa mm.mp3" a "rosita.mp3"). Entonces habría que poner la clausula "delims=;" en el código que quedaría:
@ECHO off
IF "%2" == "" GOTO ayuda
FOR /F "tokens=1,2 delims=;" %%A IN ('type %2') DO (echo ren %1\%%A.mp3 %1\%%B.mp3)
GOTO :FIN
:Ayuda
ECHO Renombra los archivos existentes en una carpeta
ECHO Usa la lista que se facilita
ECHO Formato: %0 Carpeta ListNomb
:FIN
Supongo que sabes que el código anterior debes copiarlo en un archivo del Bloc de notas (o Notepad) y salvarlo con un nombre, por ejemplo renarch.bat. Luego lo llamas con
renarch c:\mismp3 c:\mismp3\lista.txt
Suponiendo que los mp3 los tienes en la carpeta c:\mismp3 y que el archivo c:\mismp3\lista.txt contiene la lista (separada por ";").
Bueno. Si tienes algún problema no cierres la pregunta y seguimos tratando el asunto.
Suerte.