elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Borrar Archivos segun su fecha
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Borrar Archivos segun su fecha  (Leído 54,382 veces)
elecktra

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #10 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!


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #11 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
:-X

Citar
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  :-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?


« Ú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 Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #12 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! ::)
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #13 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
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 Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #14 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...
En línea

elecktra

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #15 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!
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #16 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
  1. set objshell = createobject("wscript.shell")
  2. objshell.run "cmd /c dir c:\export /s /b > templist.txt",vbhide
  3. wscript.sleep 2000
  4. 'listamos los archivos por línea de comandos, y guardamos el listado en un archivo temporal
  5. 'luego hacemos una pausa de dos segs para que se cree correctamente el archivo
  6.  
  7. set objfso = createobject("scripting.filesystemobject")
  8. set temp = objfso.opentextfile("templist.txt",1)
  9. 'abrimos el archivo temporal
  10.  
  11. do until temp.atendofstream
  12. fi = temp.readline
  13. 'leemos cada una de las líneas del archivo
  14. if objfso.fileexists(fi) = true then
  15. if objfso.getfile(fi).parentfolder.name <> Registros then
  16. 'si existe el archivo (para evitar que sea una carpeta) y la carpeta en la que esta es diferente de Registros
  17. if datediff("m",objfso.getfile(fi).datecreated,now()) >= 1 then
  18. msgbox objfso.getfile(fi).path
  19. 'revisamos la fecha y si tiene más de un mes (tomando en cuenta la fecha de hoy), lo borramos
  20. end if
  21. end if
  22. end if
  23. loop
  24. temp.close
  25. 'cerramos el archivo temporal

Para verlo en funcionamiento con simples mensajes, cambia....
Código
  1. objfso.deletefile(objfso.getfile(fi).path)
por esto...
Código
  1. 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 Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #17 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
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #18 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
« Ú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 Desconectado

Mensajes: 120


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #19 en: 26 Agosto 2008, 21:57 pm »

ok, cuaNDO QUIERAS, LO ESPERO... SALUDOS
Y GRACIAS!
En línea

Páginas: 1 [2] 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines