mirror of
https://gitlab.silvrtree.co.uk/martind2000/booksnew.git
synced 2025-01-11 09:55:09 +00:00
110 lines
1.8 KiB
Batchfile
110 lines
1.8 KiB
Batchfile
:: --------DELOLD.BAT----------
|
|
@echo off
|
|
SET OLDERTHAN=%1
|
|
SET FLDR=%2
|
|
|
|
IF NOT DEFINED OLDERTHAN GOTO SYNTAX
|
|
::IF NOT DEFINED FLDR GOTO SYNTAX
|
|
|
|
for /f "tokens=2" %%i in ('date /t') do set thedate=%%i
|
|
|
|
set mm=%thedate:~0,2%
|
|
set dd=%thedate:~3,2%
|
|
set yyyy=%thedate:~6,4%
|
|
|
|
set /A dd=%dd% - %OLDERTHAN%
|
|
set /A mm=%mm% + 0
|
|
|
|
if /I %dd% GTR 0 goto DONE
|
|
set /A mm=%mm% - 1
|
|
if /I %mm% GTR 0 goto ADJUSTDAY
|
|
set /A mm=12
|
|
set /A yyyy=%yyyy% - 1
|
|
|
|
:ADJUSTDAY
|
|
if %mm%==1 goto SET31
|
|
if %mm%==2 goto LEAPCHK
|
|
if %mm%==3 goto SET31
|
|
if %mm%==4 goto SET30
|
|
if %mm%==5 goto SET31
|
|
if %mm%==6 goto SET30
|
|
if %mm%==7 goto SET31
|
|
if %mm%==8 goto SET31
|
|
if %mm%==9 goto SET30
|
|
if %mm%==10 goto SET31
|
|
if %mm%==11 goto SET30
|
|
if %mm%==12 goto SET31
|
|
|
|
goto ERROR
|
|
|
|
:SET31
|
|
set /A dd=31 + %dd%
|
|
goto DONE
|
|
|
|
:SET30
|
|
set /A dd=30 + %dd%
|
|
goto DONE
|
|
|
|
:LEAPCHK
|
|
set /A tt=%yyyy% %% 4
|
|
if not %tt%==0 goto SET28
|
|
set /A tt=%yyyy% %% 100
|
|
if not %tt%==0 goto SET29
|
|
set /A tt=%yyyy% %% 400
|
|
if %tt%==0 goto SET29
|
|
|
|
:SET28
|
|
set /A dd=28 + %dd%
|
|
goto DONE
|
|
|
|
:SET29
|
|
set /A dd=29 + %dd%
|
|
|
|
:DONE
|
|
if /i %dd% LSS 10 set dd=0%dd%
|
|
if /I %mm% LSS 10 set mm=0%mm%
|
|
for %%i in (*.*) do (
|
|
set FileName="%%i"
|
|
call :PROCESSFILE %%~ti
|
|
)
|
|
|
|
set mm=
|
|
set yyyy=
|
|
set dd=
|
|
set thedate=
|
|
goto EXIT
|
|
|
|
:SYNTAX
|
|
ECHO.
|
|
ECHO USAGE:
|
|
ECHO DELOLD X
|
|
ECHO Where X is the number of days previous to Today.
|
|
ECHO.
|
|
ECHO EX: "DELOLD 5" Deletes files older than 5 days.
|
|
GOTO EXIT
|
|
|
|
:PROCESSFILE
|
|
set temp=%1
|
|
set fyyyy=20%temp:~6%
|
|
set fmm=%temp:~0,2%
|
|
set fdd=%temp:~3,2%
|
|
if /I %fyyyy% GTR 2069 set fyyyy=19%temp:~6%
|
|
|
|
|
|
:: +*************************************+
|
|
:: | This is where the files are deleted |
|
|
:: | Change the ECHO command to DEL to |
|
|
:: | delete. ECHO is used for test. |
|
|
:: +*************************************+
|
|
if /I %yyyy%/%mm%/%dd% GEQ %fyyyy%/%fmm%/%fdd% (
|
|
ECHO %FileName%
|
|
)
|
|
|
|
set temp=
|
|
set fyyyy=
|
|
set fmm=
|
|
set fdd=
|
|
|
|
:EXIT
|
|
|
|
:: ----------END-DELOLD.BAT------------- |