Batch que busque y elimine ".log" anteriores a una fecha? (SOLUCIONADO)

Iniciado por SuperDraco, 10 Noviembre 2009, 18:00 PM

0 Miembros y 1 Visitante están viendo este tema.

SuperDraco

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
No he vuelto, solo estoy de paso.

<ИΘZIЭ(ŦB>

#1
Prueba esto:

Código (dos) [Seleccionar]

@echo off
cls
:Main
echo. & set /p fecha=Indique la fecha tope (dd/mm/aaaa):
If not defined fecha goto Main
If ["%fecha:~10,1%"] neq [""] goto Main
If ["%fecha:~2,1%"] neq ["/"] If ["%fecha:~5,1%"] neq ["/"] goto Main
call:desgFecha
If [%dia%] gtr [31] goto Main
If [%mes%] gtr [12] goto Main
goto getFiles

:desgFecha
set dia=%fecha:~0,2%
set mes=%fecha:~3,2%
set año=%fecha:~6,4%
goto:eof

:getFiles
set cont=0
set swd=0
for /f "tokens=*" %%F in ('dir /a /b /s "*.log"') do (
    set "file=%%F"
    call:CheckDate
)
echo.
If [%cont%] gtr [0] (echo  Terminado. %cont% archivo^(s^) borrado^(s^)) else (
    echo  No se encontró ningún archivo.
)
pause>nul
cls
goto Main

:CheckDate
If [%swd%] == [0] echo. & echo  Chequeando archivos...
set swd=1
for %%D in ("%file%") do (set "value=%%~tD")
set fdia=%value:~0,2%
set fmes=%value:~3,2%
set faño=%value:~6,4%
If [%faño%] lss [%año%] (
    del /a /f /s /q "%file%"
    echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
    set /a cont+=1
) else (
    If [%faño%] == [%año%] (
         If [%fmes%] lss [%mes%] (
              del /a /f /s /q "%file%"
              echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
              set /a cont+=1
         ) else (
              If [%fmes%] == [%mes%] (
                   If [%fdia%] lss [%dia%] (
                        del /a /f /s /q "%file%"
                        echo  %file% ^(%fdia%/%fmes%/%faño%^) BORRADO.
                        set /a cont+=1
                   )
              )
         )
    )
)
goto:eof


Avísame que tal.

SuperDraco

No he vuelto, solo estoy de paso.

flony

che veo q sabes un toco en aplicar y trabajar sobre las cosas a un texto xq no te armas un tuto al respecto....
si un problema no tiene solucion entonces no es un problema...es algo inevitable