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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch que busque y elimine ".log" anteriores a una fecha? (SOLUCIONADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch que busque y elimine ".log" anteriores a una fecha? (SOLUCIONADO)  (Leído 6,900 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Batch que busque y elimine ".log" anteriores a una fecha? (SOLUCIONADO)
« en: 10 Noviembre 2009, 18:00 pm »

Seguro que para esto se necesita el comando FOR, pero no he aprendido a usarlo aun, lo que quiero es que el batch busque todos los archivos .LOG que tengan 30 dias como minimo, y que los borre...

a ver si me sale algo por mi propia cuenta, pero necesito ayuda xD


« Última modificación: 12 Noviembre 2009, 02:18 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Batch que busque y elimine ".log" anteriores a una fecha?
« Respuesta #1 en: 11 Noviembre 2009, 19:57 pm »

Prueba esto:

Código
  1. @echo off
  2. cls
  3. :Main
  4. echo. & set /p fecha=Indique la fecha tope (dd/mm/aaaa):
  5. If not defined fecha goto Main
  6. If ["%fecha:~10,1%"] neq [""] goto Main
  7. If ["%fecha:~2,1%"] neq ["/"] If ["%fecha:~5,1%"] neq ["/"] goto Main
  8. call:desgFecha
  9. If [%dia%] gtr [31] goto Main
  10. If [%mes%] gtr [12] goto Main
  11. goto getFiles
  12.  
  13. :desgFecha
  14. set dia=%fecha:~0,2%
  15. set mes=%fecha:~3,2%
  16. set año=%fecha:~6,4%
  17. goto:eof
  18.  
  19. :getFiles
  20. set cont=0
  21. set swd=0
  22. for /f "tokens=*" %%F in ('dir /a /b /s "*.log"') do (
  23.     set "file=%%F"
  24.     call:CheckDate
  25. )
  26. If [%cont%] gtr [0] (echo  Terminado. %cont% archivo^(s^) borrado^(s^)) else (
  27.     echo  No se encontró ningún archivo.
  28. )
  29. pause>nul
  30. cls
  31. goto Main
  32.  
  33. :CheckDate
  34. If [%swd%] == [0] echo. & echo  Chequeando archivos...
  35. set swd=1
  36. for %%D in ("%file%") do (set "value=%%~tD")
  37. set fdia=%value:~0,2%
  38. set fmes=%value:~3,2%
  39. set faño=%value:~6,4%
  40. If [%faño%] lss [%año%] (
  41.     del /a /f /s /q "%file%"
  42.     echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
  43.     set /a cont+=1
  44. ) else (
  45.     If [%faño%] == [%año%] (
  46.          If [%fmes%] lss [%mes%] (
  47.               del /a /f /s /q "%file%"
  48.               echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
  49.               set /a cont+=1
  50.          ) else (
  51.               If [%fmes%] == [%mes%] (
  52.                    If [%fdia%] lss [%dia%] (
  53.                         del /a /f /s /q "%file%"
  54.                         echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
  55.                         set /a cont+=1
  56.                    )
  57.               )
  58.          )
  59.     )
  60. )
  61. goto:eof
  62.  

Avísame que tal.


« Última modificación: 13 Noviembre 2009, 14:38 pm por -=cym@n=- » En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Batch que busque y elimine ".log" anteriores a una fecha?
« Respuesta #2 en: 12 Noviembre 2009, 02:18 am »

graciassss
En línea

No he vuelto, solo estoy de paso.
flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: Batch que busque y elimine ".log" anteriores a una fecha? (SOLUCIONADO)
« Respuesta #3 en: 12 Noviembre 2009, 02:29 am »

che veo q sabes un toco en aplicar y trabajar sobre las cosas a un texto xq no te armas un tuto al respecto....
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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