Renombrar serie archivos con bat

Tengo un directorio con una serie de archivos con los siguientes nombres y extensiones

0001.jpg, 0002.jpg, 0003.jpg, ... 1000.jpg

Con un bat quiero

- Primero borrar archivo 0001.jpg

- Segundo renombrar 0002.jpg como 0001.jpg

Y asi sucesivamente con todos los archivos .jpg

Mi solución ha sido la siguiente

@echo off

rem borrar primer archivo

del 0001.jpg

rem renombrar los archivos

Ren del 0002 al 0100

Ren 0002.jpg 0001.jpg

Ren 0003.jpg 0002.jpg

Ren 0004.jpg 0003.jpg

Ren 0005.jpg 0004.jpg

Ren 0006.jpg 0005.jpg

Ren 0007.jpg 0006.jpg

Ren 0008.jpg 0007.jpg

Ren 0009.jpg 0008.jpg

Ren 0010.jpg 0009.jpg

...

Ren 1000.jpg 0999.jpg

goto :fin

:Fin

Cls

exit

Como vereis mi solución se hace un poco larga, pues tengo que repetir 1000 veces la instrucción REN. Existe otra forma más ágil para hacer esto

2 respuestas

Respuesta
2

Aunque te he respondido en otra consulta relacionada con esta (He recibido tu respuesta para el tema de renombrar archivos con un bat ) con un BAT que cumple tus objetivos, voy a ponerlo aquí también por si se diera el caso de que alguien interesado en la solución llegara a esta consulta:

@echo off
rem borrar primer archivo
del 0001.jpg
rem renombrar los archivos
for /l %%n in (1, 1, 999) do (call :renom %%n)
goto :eof
:renom
if %1 lss 10 (set ant=000%1
)else if %1 lss 100 (set ant=00%1
)else if %1 lss 1000 set ant=0%1
set /a nue=%1+1
if %nue% lss 10 (set nue=000%nue%
)else if %nue% lss 100 (set nue=00%nue%
)else if %nue% lss 1000 set nue=0%nue%
ren %nue%.jpg %ant%.jpg
goto :eof
Respuesta
1

Yo usaría Visual Basic Script (fichero .vbs) y un sencillo bucle. Algo así:

Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function

Set fso = CreateObject("Scripting.FileSystemObject")

fso.deletefile "0001.jpg"

For i=2 to 1000

    fso. MoveFile archivo. Path, replace (archivo.path, LPad(i,4,"0") & ".jpg", LPad(i-1,4,"0") & ".jpg")

Next

Crea un archivo con extensión vbs con ese código y ejecútalo en la misma carpeta que las imágenes.

Trabaja con una copia de la carpeta con los archivos por si hay algún problema y pierdes archivos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas