Título: [Batch] Borrar Archivos segun su fecha Publicado por: elecktra en 12 Agosto 2008, 03:38 am BUENAS!!!
Es posible elimanr archivos segun su fecha de creacion? Me explico mejor: Supongamos que en la unidad "C" tengo esta ruta: "C:\export\" y dentro de esa carpeta se me general archivos de .txt practicamente todos los dias, la idea es hacer un BAt que compruebe si el archivo fue creado el mes anterios que lo elimine si no, no; el mes lo hago del 25 al 25 de cada, si el archivo es del 25 del mes pasado lo elimine, si no, no, creo que tengo que dar atributos a los archivos, pero no se como hacerlo. Desde ya gracias, espero me puedan ayudar! Saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 12 Agosto 2008, 15:11 pm No se como podría hacerse en batch puro, pero si en vbscript :rolleyes:
Código
Este script puedes "empaquetarlo" en un *.bat.. Código
Este script lo que hace es borrar todos los archivos que tengan más de un mes, sin importar la fecha, sino el momento de la ejecución Saludos ;) Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 12 Agosto 2008, 19:05 pm Gracias!
Pero me explicas en donde trabaja el scrip ese, osea en que directorio! Me borra solo los .txt? el codigo lo pego un txt y guarcdo el archivo con que extensión? Gracias! Saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 12 Agosto 2008, 19:35 pm El script trabaja con todos los archivos (sin importar el tipo) que se encuentran en el directorio c:\export, y revisa que la fecha de creación del archivo, sea anterior a un mes, si es igual o anterior, los elimina :P
El primer archivo es un *.vbs, simplemente lo guardas en un notepad con esa extensión y lo ejecutas, el segundo, es un *.bat, que se encarga de generar el *.vbs, así que simplemente hay que guardarlo como *.bat, y listo.... Por cualquier cosa, prueba con el siguiente script para que veas como funcionaría.. Código Lo que he hecho es sustituír la orden de borrar, por un simple mensaje ;) Dicho mensaje, saltará por cada uno de los archivos :-X Saludos Nota:Si son muchos archivos y te cansas de presionar OK en el mensaje, mata el proceso wscript.exe XD Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 01:39 am Muchas gracias estuve probando y funciona, pero se me complico en una cosa!
Dentro de la carpeta "c:\export\" tengo 40 subcarpetas, es posible que el archivo busque dentro de cada subcarpeta y haga el mismo trabajo, pero sin que me elimine las carpetas, poque hacer un scpriot diferente por carpeta, seria muy desprolijo! Ya que esta te hago una consulta: Se puede enviar un mail con script .VBS? Gracias saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 01:50 am Perdona que te moleste, pero me queda una duda.
En que parte del script "asignas la antiüedad del archivo"? (es una pregunta tonta, pero me queda la duda! Y si mis pocos conocimientos de BAT no me fallan cuando te referis a empaquetarlo en un BAT, lo que hace el BAT (el que pusistes de ejemplo) es, crearme el archivo.vbs y ejecutarlo, despues lo borra no? Lo crea en la carpeta %temp%? (Seria esta: "C:\Documents and Settings\Administrador\Configuración local\Temp") Gracias! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 13 Agosto 2008, 02:11 am Citar Dentro de la carpeta "c:\export\" tengo 40 subcarpetas, es posible que el archivo busque dentro de cada subcarpeta y haga el mismo trabajo, pero sin que me elimine las carpetas Eso no habría problemas,es sencillo, si es solo eso avisa y te dejo el code ;DCitar Se puede enviar un mail con script .VBS? Con *.vbs se puede automatizar el envío de mails a traves de outlook, es un método que utilizaban varios virus, y por esto, este método puede ser detectado, pero igualmente si lo necesitas creas una excepción y listo :PCitar En que parte del script "asignas la antiüedad del archivo"? He comentado el anterior code ;)Citar cuando te referis a empaquetarlo en un BAT, lo que hace el BAT (el que pusistes de ejemplo) es, crearme el archivo.vbs y ejecutarlo, despues lo borra no? Exacto, lo crea en los temporales, por medio de >>, lo ejecuta, espera, y cuando el vbs termina, lo elimina Espero haberte ayudado.. Saludos Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 03:13 am La verdad me estas ayudando demasiado, porque script en BASIC no recuerdo nada, ando mejor en los BAT....
Te pido si me podes dejar el code por el tema de las subcarpetas! y te comento mi error al ejecutar el codigo: Si ejecuto el codigo de prueba (el que no elimina solo muestra el cartel) funciona perfecto, me dice #este se elimina" este "no"..... etc Pero si ejecuto el codigo verdaero, no me elimina nada y aparece el siguiente error: Secuencia de comando: C:\........ (ruta del VBS) LInea: 7 Caracter: 3 Error Permission denied Codigo: 800A0046 Origen: Microsoft VBScript runtime error Quien me nieha el permiso? (creo que es eso) Gracias un aves mas! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 03:19 am que tonto fui, no me hagas caso con respecto al error, ya lo solucione, esta tratando de borrar unos archivos de prueba, y un archivo era de systema!
Ayudame con lo otro, gracias! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 13 Agosto 2008, 03:24 am Ok, entonces te dejo el code para las subcarpetas :P
Código Tener en cuenta que este SI borra En todo caso, cambiar objfso.deletefile(a.path), por msgbox a.path si se quieren hacer pruebas Saludos ;) P.D: el script no toma en cuenta subcarpetas, dentro de las subcarpetas, ni tampoco, los archivos sueltos dentro del directorio principal, sino que va derecho a las carpetas, si es necesario, avisame y lo cambio en este mismo post Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 03:37 am Funciona de maravilla, si no me equivoco este ultimo codigo solo elimina lo que se encuentra dentro de las subcarpetas, no la carpeta principal.
Asi me funciono a mi, entonces ejecuto primero un codigo y luego el otro, pero funciono de maravilla. Mi explicarias el tema del mail, la idea seria que el script busque en el directorio los 2 ultimos archivos .txt crados recientemente, y los envie por mail.. Es posible? Gracias! Prometo devolverte la ayuda, garcias! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 13 Agosto 2008, 03:53 am Citar Funciona de maravilla, si no me equivoco este ultimo codigo solo elimina lo que se encuentra dentro de las subcarpetas, no la carpeta principal. Asi me funciono a mi, entonces ejecuto primero un codigo y luego el otro, pero funciono de maravilla. No es necesario que ejecutes primero uno y después otro, ya he modificado el code, revisalo, justamente por eso dije.. Citar el script no toma en cuenta subcarpetas, dentro de las subcarpetas, ni tampoco, los archivos sueltos dentro del directorio principal, sino que va derecho a las carpetas :-XCitar Mi explicarias el tema del mail, la idea seria que el script busque en el directorio los 2 ultimos archivos .txt crados recientemente, y los envie por mail.. Como te comento, sería posible, pero para eso deberías de tener outlook en la pc.Es posible? En caso de tenerlo, necesito hacer memoria :-X, ya que no lo recuerdo exactamente en este momento :xD Saludos P.D: los txt son muy largos? que tipo de cuenta de correo es la destinataria, una cuenta empresarial? por que no envíar el contenido del archivo en el cuerpo del mensaje? Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 04:42 am el Outlook esta instalado, y si es nesesario se creea una cuenta de mail en Microsoft Outlook 2003/2007 o Outlook Express.
Los txt tienen "1_0017_080601_080630.txt" un nombre como este, solamente varian los números, y no llegan a pesar 1MB. La cuenta no es empresarial, es simplemente para hacer unas pruebas, se creara una cuenta de correo nuevo. Si tansolo se pudiera enviar el contenido del txt como mensaje, seria lo mismo. da igual enviar los 2 txt adjuntos, o el contenido de los txt como mail. Yo quise hacerlo por BAT con TELNET pero no funciono. Espero puedas ayudarme, saludos. Gracias! ::) Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 13 Agosto 2008, 16:59 pm Esta relacionado al último code? o va de cero?, digo porque si es un code separado, hay que declarar los objetos y todo de nuevo, además de que el proceso de verificar cuales son los dos archivos más nuevos, puede hacerse junto al resto del code :P
Saludos Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 13 Agosto 2008, 17:14 pm Si esta relacionado con el ultimo code, la idea es que saque los dos ultimos txt de la carpeta export, y no9 de las subcarpetas!!!!
Osea que borre los archivos viejos (code anterior) de la carpeta principal y subcarpetas, y luego envie un mail con los 2 ultimos txt (como te explique antes) de la carpeta export! Gracias, saludos.. Si es mas facil hacerlo separado, no hay problema... Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 26 Agosto 2008, 17:30 pm Hola, como estas?
tanto tiempo, mira, estuve viendo el codigo, y quiero hacerle una modificacion. set objfso = createobject("scripting.filesystemobject") set directorio = objfso.getfolder("c:\export") set dirfiles = directorio.files for each d in dirfiles if datediff("m",d.datecreated,now()) >= 1 then objfso.deletefile(d.path) end if next set subcarpetas = directorio.subfolders for each carpeta in subcarpetas set archivos = carpeta.files for each a in archivos if datediff("m",a.datecreated,now()) >= 1 then objfso.deletefile(a.path) end if next next Este fue el ultimo code que me pasastes y como me mencionabas necesito que busque destro de las subcarpetas. gracias! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 26 Agosto 2008, 21:08 pm Buenas... podría meterme ha hacer for.. pero creo que haciendo uso de la línea de comandos es más sencillo.... :P
Código
Para verlo en funcionamiento con simples mensajes, cambia.... Código por esto... Código
Saludos ;) Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 26 Agosto 2008, 21:34 pm Fallo, mira te cuento.
al ejecutar el script, lee el directorio, y me crea el txt con lo que encuentra, pero al momento de borrar tira un error y no hace nada. Error: Linea: 14 Caracter: 2 Error: Archivo no encontrado codigo: 800A0035 otra duda, despues de ejecutarse, el txt se borra? gracias! Yo pense en usar un FOR pero como no entiendo casi nada de VBS.. te doy una idea, con variables se podra? saludos Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 26 Agosto 2008, 21:54 pm Una tontería.... la verdad.. ni lo había probado :xD... ya he modificado el anterior código, prueba ahora ;)
Después de ejecutarse, el txt no se borra.. pero da igual.. ya que en la próxima ejecución es sobreescrito :P Saludos Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 26 Agosto 2008, 21:57 pm ok, cuaNDO QUIERAS, LO ESPERO... SALUDOS
Y GRACIAS! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 27 Agosto 2008, 02:55 am Mira he probado y funciona de maravilla, lo que hice es cambiar la linea:
msgbox objfso.getfile(fi).path por: objfso.deletefile(objfso.getfile(fi).path) y me elimina los archivos, el problema es que elimina y aparece un "msgbox" con el nombre de archivo que va eliminando y me obliga a hacer click en "Aceptar" probe cambiando el "msgbox if" por un "delete if" y no funciono. La idea es que sea automatico! Gracias! saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 27 Agosto 2008, 03:38 am :xD... ooootra vez.... la vez pasada fue porque no lo había probado.. y esta vez por probarlo :xD, me olvide de quitar un mensaje :-[
Finalmente... revisa el code.. que ya lo he modificado ;D Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 27 Agosto 2008, 04:30 am Probado y aprobado, funciono de maravillas, porque la otra ves tuve que editarlo por cada carpeta que tenia, y era bastante largo el codigo..
Muchas Gracias! despues posteo el proyecto realizado completo y explico que hace! Saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 27 Agosto 2008, 15:33 pm Hola maestro como va, tengo un ultmo problema, te cuento:
el tema es que empaquete el script en un BAT pero me falla y el problema es desde la linea: if objfso.getfile(fi).parentfolder.name <> Registros then el problema es que yo hago asi le agrego el echo CODIGO >> del.vbs pero como el codigo ya tiene un > no me lo exporta. como puedo soluciobarlo? gracias saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 27 Agosto 2008, 16:14 pm Bueno... eso si no lo voy a hacer yo... te dejo el trabajo.... :-X
Pero el problema esta aquí.... como ya has visto.. hay caracteres que son utilizados con otros fines por ms-dos... por lo que funciones de *.vbs, como set deben de ser escapadas con ^... ej: Código Saludos P.D:Como he comentado... los "set" también deben de ser escapados.. ya que echo set es propio de ms-dos ;) Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 27 Agosto 2008, 16:56 pm no problem, gracias de todos modos! saludos!
posteare este problema! saludos! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: Novlucker en 27 Agosto 2008, 17:19 pm Citar posteare este problema! Que es lo que debes postear? si ya te he dado la respuesta... :¬¬^<---esto esta en el ej anterior Saludos Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: elecktra en 27 Agosto 2008, 17:52 pm ahora si, yo habia probado pero oniendolo el simbolo despues de echho, pero iva antes del simbolo!
saludos gracias! Título: Re: Borrar Archivos segun su fecha en BAT! Publicado por: javor en 18 Febrero 2009, 17:47 pm Hola soy nuevo en el foro y he visto que en temas de vbs, soy muy buenos y como tengo una duda, queria a ver si alguien me puede ayudar.
Yo necesitaria lo mismo que hace el script que se indica en este tema, pero yo lo que necesito no es borrar el resultado si no que es moverlo a una carpeta o incluso mas dificil, comprimierlo en un zip o rar. SI alguien me puede ayudar, se lo agradeceria mucho. Saludos Título: Re: [Batch] Borrar Archivos segun su fecha Publicado por: dvreggionx en 10 Mayo 2011, 22:43 pm que complicado....
aca tenes una Solucion mas simple Código: forfiles /p "C:\CarpetaDeseada" /S /M *.* /D -5 /c "cmd /c del @path" *.* se puede reemplazar por algun nombre en especial o por alguna extensión en especial por ejemplo *.exe -5 son la cantidad de dias de antiguedad por ejemplo asi como esta ahora te va a borrar todos los archivos con una antiguedad mayor a 5 dias esa linea editala a tu gusto, guardala desde un notepad como ScritBorraArchivosViejos.bat y si queres que se ejecute todos los dias hacelo desde las tareas programadas de windows Título: Re: [Batch] Borrar Archivos segun su fecha Publicado por: walterio en 8 Octubre 2013, 20:08 pm Novlucker Disculpa las molestias, te hago 2 preguntitas:
La primera: me explicas como es el tema de los script? uno es un bat y el otro un vbs? Uno llama al otro? tienen que tener algun nombre en particular? La segunda: Como modificar el script para que borre archivos mas antiguos que una cierta cantidad de días (en vez de un mes) Muchas Gracias! Título: Re: [Batch] Borrar Archivos segun su fecha Publicado por: Eleкtro en 8 Octubre 2013, 22:13 pm @walterio
Porfavor lee las normas del foro para no revivir más posts de hace 5 años para formular preguntas... Tampoco especificas a que código exacto de Novlucker te refieres, ¿él y los demás tenemos que leer todas las respuestas en las dos páginas del hilo para adivinarlo?... A preguntas sin detalles, respuestas simples: Código: ' Ejemplo: 5 días PD: No revivas posts muertos, puedes formular una nueva pregunta citando cualquier código de este hilo si deseas. Saludos Título: Re: [Batch] Borrar Archivos segun su fecha Publicado por: walterio en 8 Octubre 2013, 22:48 pm Perdón, pregunte sin leer las normas
Mis disculpas |