elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 06:54  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [Batch] Borrar Archivos segun su fecha
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Borrar Archivos segun su fecha  (Leído 15,202 veces)
elecktra

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #15 en: 26 Agosto 2008, 17:30 »

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
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


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 »

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
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....
Código
objfso.deletefile(objfso.getfile(fi).path)
por esto...
Código
msgbox objfso.getfile(fi).path

Saludos  ;)


« Última modificación: 27 Agosto 2008, 13:33 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

elecktra

Desconectado Desconectado

Mensajes: 118


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

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
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


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 »

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 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

elecktra

Desconectado Desconectado

Mensajes: 118


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

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

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #20 en: 27 Agosto 2008, 02:55 »

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!
En línea
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #21 en: 27 Agosto 2008, 03:38 »

 :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
« Última modificación: 27 Agosto 2008, 03:40 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

elecktra

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #22 en: 27 Agosto 2008, 04:30 »

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!
En línea
elecktra

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #23 en: 27 Agosto 2008, 15:33 »

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!
En línea
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #24 en: 27 Agosto 2008, 16:14 »

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
echo ^set objfso = createobject(scripting.filesystemobject") >> del.vbs
echo if objfso.getfile(fi).parentfolder.name ^<^> Registros then >> del.vbs

Saludos

P.D:Como he comentado... los "set" también deben de ser escapados.. ya que echo set es propio de ms-dos  ;)
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

elecktra

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #25 en: 27 Agosto 2008, 16:56 »

no problem, gracias de todos modos! saludos!
posteare este problema!
saludos!
En línea
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


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

Citar
posteare este problema!
Que es lo que debes postear? si ya te he dado la respuesta...  :¬¬

^<---esto esta en el ej anterior

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

elecktra

Desconectado Desconectado

Mensajes: 118


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #27 en: 27 Agosto 2008, 17:52 »

ahora si, yo habia probado pero oniendolo el simbolo despues de echho, pero iva antes del simbolo!
saludos
gracias!
En línea
javor

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Borrar Archivos segun su fecha en BAT!
« Respuesta #28 en: 18 Febrero 2009, 17:47 »

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
En línea
dvreggionx

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: [Batch] Borrar Archivos segun su fecha
« Respuesta #29 en: 10 Mayo 2011, 22:43 »

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
En línea
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines