Autor
|
Tema: [Batch] Borrar Archivos segun su fecha (Leído 56,184 veces)
|
elecktra
Desconectado
Mensajes: 120
|
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!
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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.. 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 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? Como te comento, sería posible, pero para eso deberías de tener outlook en la pc. En caso de tenerlo, necesito hacer memoria , ya que no lo recuerdo exactamente en este momento 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?
|
|
« Última modificación: 13 Agosto 2008, 03:58 am por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
elecktra
Desconectado
Mensajes: 120
|
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!
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
elecktra
Desconectado
Mensajes: 120
|
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...
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
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!
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Buenas... podría meterme ha hacer for.. pero creo que haciendo uso de la línea de comandos es más sencillo.... set objshell = createobject("wscript.shell") objshell.run "cmd /c dir c:\export /s /b > templist.txt",vbhide wscript.sleep 2000 'listamos los archivos por línea de comandos, y guardamos el listado en un archivo temporal 'luego hacemos una pausa de dos segs para que se cree correctamente el archivo set objfso = createobject("scripting.filesystemobject") set temp = objfso.opentextfile("templist.txt",1) 'abrimos el archivo temporal do until temp.atendofstream fi = temp.readline 'leemos cada una de las líneas del archivo if objfso.fileexists(fi) = true then if objfso.getfile(fi).parentfolder.name <> Registros then 'si existe el archivo (para evitar que sea una carpeta) y la carpeta en la que esta es diferente de Registros if datediff("m",objfso.getfile(fi).datecreated,now()) >= 1 then msgbox objfso.getfile(fi).path 'revisamos la fecha y si tiene más de un mes (tomando en cuenta la fecha de hoy), lo borramos end if end if end if loop temp.close 'cerramos el archivo temporal
Para verlo en funcionamiento con simples mensajes, cambia.... objfso.deletefile(objfso.getfile(fi).path)
por esto... msgbox objfso.getfile(fi).path
Saludos
|
|
« Última modificación: 27 Agosto 2008, 13:33 pm por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
elecktra
Desconectado
Mensajes: 120
|
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
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Una tontería.... la verdad.. ni lo había probado ... 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 Saludos
|
|
« Última modificación: 27 Agosto 2008, 00:19 am por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
elecktra
Desconectado
Mensajes: 120
|
ok, cuaNDO QUIERAS, LO ESPERO... SALUDOS Y GRACIAS!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Batch] Script para mover ficheros segun su fecha de creacion a otra carpeta
Scripting
|
javor
|
1
|
13,434
|
19 Febrero 2009, 16:47 pm
por Novlucker
|
|
|
PROCESO BATCH QUE ELIMINE ARCHIVOS EN CIERTA FECHA
Scripting
|
GEORGEFRT
|
1
|
5,609
|
24 Noviembre 2011, 15:17 pm
por Eleкtro
|
|
|
[Solucionado][Batch] Find (buscar archivos por fecha) y tuberias
Scripting
|
Baranoides
|
2
|
15,089
|
13 Enero 2012, 21:05 pm
por Baranoides
|
|
|
[Batch] Ejemplos:Listar archivos (por fecha de modificación,tamaño,etc)
Scripting
|
Eleкtro
|
3
|
9,096
|
26 Abril 2012, 16:03 pm
por -- KiLiaN --
|
|
|
Renombrar archivos por lote segun caracter - batch
Scripting
|
rochro
|
1
|
2,810
|
28 Agosto 2015, 11:31 am
por Eleкtro
|
|