Como puedo renombrar varios archivos con un .bat

Quisiera saber como hacer un archivo .BAT en donde yo tenga un documento con los títulos (Un txt o un docx) y que esos títulos se pongan en los archivos. He visto una un código tuyo pero no me funciona. No se si me he explicado bien.

1 respuesta

Respuesta
1

Supongo que el archivo TXT (usar un DOCX para esto sería una gran complicación) contiene una línea para cada "renombrado" y en esa línea figuran, separados de alguna manera (por ejemplo un "/") el nombre actual y el nombre futuro. Si los archivos pueden estar en distintas carpetas de origen debe incluirse el "path" en el nombre actual. Si todos los archivos estuvieran en la misma carpeta, digamos D:\PBA_ADRIAN, no haría falta incluir el "path". En el "snipett" que sigue te muestro un ejemplo del TXT y el BAT que debería hacer lo que pretendes si te he entendido bien. Incluye el caso más complejo en que tanto el nombre actual como el futuro puedan tener espacios en los nombres de carpetas o archivos.

D:\BAT>type adrian.txt
D:\Mi música\Italianas\08 - Maremma.mp3/08-Maremma.mp3
D:\BAT>type adrian.bat
@echo off
for /f "tokens=1,* delims=/" %%i in (adrian.txt) do ren "%%i" "%%j"
D:\BAT>

Gracias por tu respuesta, ¿pero entonces los títulos los tendría que poner en el .txt o en el .bat?

Si te he entendido bien tendrías que poner en el TXT los nombres actuales y los nombres "futuros" separados por un "/", pero esto si a lo que llamas títulos se refiere a los nombres que quieres que se adjudiquen a los archivos con esos nombres actuales, es decir si llamas títulos a lo que yo llamo nombres futuros. Si no es así es que hay algo que no he entendido, en cuyo caso tendrías que decirme a que te refieres con títulos. Por ejemplo, si es algo que quieres que aparezca en la primera línea del archivo, cosa que podrías ser sencilla si se trata de archivo planos (tipo TXT) pero que puede no serlo si no lo son, es decir si son archivos DOCX, o DOC, o XLS, o XLSX, etc.

Si, con títulos me refiero a los nombres de los archivos.

Entonces, por ejemplo:

Yo tengo en la carpeta llamada "Carpeta" 3 archivos .txt que se llaman "prueba01.txt" "prueba02.txt" "prueba03.txt"

Y también tengo la lista con los nombre llamada "lista.txt" con esto puesto:

prueba01.txt/primero.txt

prueba02.txt/segundo.txt

prueba03.txt/tercero.txt

El código sería:

D:\BAT>type lista.txt
D:\carpeta\prueba01.txt/primero.txt
D:\BAT>type lista.bat
@echo off
for /f "tokens=1,* delims=/" %%i in (lista.txt) do ren "%%i" "%%j"
¿D:\BAT>

Hay algo mal?

Si la carpeta "Carpeta" está en la unidad C: y cuelga directamente del raíz (es decir si su "path" es C:\Carpeta) el bat (lista.bat o como quieras llamarle) sería:

@echo off
c:
cd Carpeta
for /f "tokens=1,* delims=/" %%i in (lista.txt) do ren "%%i" "%%j"

Puedes guardar el bat dónde quieras pero lista.txt debe estar, también, en la carpeta "Carpeta". Si estuviera en otra ubicación en donde pone " in (lista.txt)" tendrías que incluir el path completo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas