Renombrar Varios Archivos en Bat

Quisiera saber como hacer un archivo .BAT en donde yo tenga un archivo pueda ser en txt o excel. Donde tengo el nombre de mis grabaciones en extensión mp3 y que al frente o no se como hacerlo ponerle a cada una de esas que nombre debería tener es una cuestión de etiquetar grabaciones, me explico yo tengo el nombre del archivo mp3 así 603723003899845 - 30010 y quiero que tenga el nombre 1201212 comercializador, pero la cuestión es que todos los días estos nombres de las grabaciones cambian y por ellos también la etiqueta final por eso pregunto que si en el bat se puede asociar una archivo donde yo coloque el nombre de las grabaciones digamos de hoy y en frente el nombre que quiero que tome agradezco la colaboración y tu respuesta.

1 Respuesta

Respuesta
1

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.

Perdón. Se me coló un "echo" indebido en el segundo código.

Debería ser:

@ECHO off
IF "%2" == "" GOTO ayuda
FOR /F "tokens=1,2 delims=;" %%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

Otras dos erratas (espero que sean las últimas) si los nombres pueden tener espacios hay que encerrarlos entre comillas y el nuevo nombre no puede tener nombre de carpeta. Sería:

@ECHO off
IF "%2" == "" GOTO ayuda
FOR /F "tokens=1,2 delims=;" %%A IN ('type %2') DO (ren "%1\%%A.mp3" "%%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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas