Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - hardmaster

#1
Tengo una carpeta llamada contrato, dentro de ella tengo archivos llamados dela siguiente manera "00361570001.tiff" ..... "00361577008.tiff" . Que los mueva a una carpeta llamada como el ultimo "00361577008", son cerca de 9 millones de archivos por lo que se requiere de un bat para la tarea.

En la carpeta quedarían 8 archivos correlativos llamados :

00361570001.tiff
00361571002.tiff
00361572003.tiff
00361573004.tiff
00361574005.tiff
00361575006.tiff
00361576007.tiff
00361577008.tiff

Lo que se necesita, es que tome los últimos tres caracteres del nombre del archivo, empezando del 001 e incrementando de 1 en 1, hasta llegar nuevamente a 001 que seria otra carpeta.
Cree la carpeta con el nombre del ultimo archivo y los mueva. (Cada vez que se encuentre con un 001 cree una carpeta y mueva los archivos correlativos )
Espero se entienda la idea

Código (dos) [Seleccionar]
@echo off

for %%a in (*.tiff) do call :Analiza %%a
GOTO:EOF

:Analiza
(analiza los ultimos tres digitos)
goto Sigue

:Sigue
if (nombre archivo) LSS (nombre archivo siguiente)
goto Carpeta

:Carpeta
mkdir (crear carpeta con el nombre del ultimo archivo)
goto Mover

:Mover
move (mover grupo de archivos a la carpeta creada)
goto EOF




Analizar el nombre del archivo, toma los últimos 3 digitos y los compara con el siguiente archivo, si es igual crea una carpeta con el nombre del primero y mueve el archivo, si es mayor sigue con el siguiente hasta que llegue nuevamente a 001, ahí crea una carpeta con el nombre del ultimo archivo, y mueve los archivos a la carpeta creada.


Cualquier ayuda es de suma importancia. Espero me puedan ayudar. Gracias de antemano !!!