Título: Bat para mover grupo de archivos por secuencia de numeros Publicado por: hardmaster en 29 Junio 2016, 22:55 pm 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 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 !!! Título: Re: Bat para mover grupo de archivos por secuencia de numeros Publicado por: Eleкtro en 30 Junio 2016, 11:24 am En Batch puedes hacerlo, pero aparte de ser tedioso llevarlo a cabo, un script considerado eficiente que hiciese las verificaciones necesarias probablemente resultaría en un procedimiento muy, muy lento, llegando a superar sin exagerar los 60 minutos o tal vez +90-120, en caso de que realmente sean +9 millones de archivos quizás varias horas (es dificil calcularlo a ojo, es realmente muy lento), por la lógica de filtración de archivos (incrementación, substring/regex, etc). Sin embargo, en otro lenguaje sería una tarea simple y sencilla de agrupación de archivos según "X" condición.
Supongo que el lenguaje te será indiferente ya que solo pareces querer llevar a cabo una tarea administrativa con cualquier herramienta que pueda hacerlo, esté escrita en el lenguaje que esté. Pero antes de empezar y mostrarte el código necesario (en C#/VB.NET, no Batch), para asegurarnos que todo me haya quedado claro por favor muéstrame otro ejemplo real aparte de este: Citar Código: 00361570001.tiff 00361571002.tiff 00361572003.tiff 00361573004.tiff 00361574005.tiff 00361575006.tiff 00361576007.tiff 00361577008.tiff Ya que, con los datos que has proporcionado, yo supongo que el siguiente grupo a mover sería algo así: Código: 00361580001.tiff 00361581002.tiff 00361582003.tiff 00361583004.tiff 00361584005.tiff 00361585006.tiff 00361586007.tiff 00361587008.tiff Y el siguiente podría ser este: Código: 00361590001.tiff 00361591002.tiff 00361592003.tiff 00361593004.tiff 00361594005.tiff 00361595006.tiff 00361596007.tiff 00361597008.tiff Es decir, que el "delimitador" virtual empezaría siempre en esta posición: 00361570001.tiff *******1002.tiff *******2003.tiff *******3004.tiff *******4005.tiff *******5006.tiff *******6007.tiff *******7008.tiff 00361580001.tiff *******1002.tiff *******2003.tiff *******3004.tiff *******4005.tiff *******5006.tiff *******6007.tiff *******7008.tiff 00361590001.tiff *******1002.tiff *******2003.tiff *******3004.tiff *******4005.tiff *******5006.tiff *******6007.tiff *******7008.tiff ¿Todo esto que acabo de decir es correcto?. Saludos |