title: batch file to delete files older than a specified date
body: <p>How do I create a batch file to delete files older than a specified date?</p>
  
  <p>This does not seem to work;</p>
  
  <pre><code>:: --------DELOLD.BAT----------
  @echo off
  SET OLDERTHAN=%1
  IF NOT DEFINED OLDERTHAN GOTO SYNTAX
  
  for /f "tokens=2" %%i in ('date /t') do set thedate=%%i
  type %1
  pause
  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-------------
  </code></pre>