Note that there are some explanatory texts on larger screens.

plurals
  1. PObatch file to delete files older than a specified date
    primarykey
    data
    text
    <blockquote> <p><strong>Possible Duplicate:</strong><br> <a href="https://stackoverflow.com/questions/51054/batch-file-to-delete-files-older-than-n-days">Batch file to delete files older than N days</a> </p> </blockquote> <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>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload