@echo off rem mydir.bat - RJM Programming - June, 2014 rem Additional /m: days switch for listings by age ... eg. /m:-7 for files of last 7 days rem Other usual dir switches should act the same rem dir . /s /t:w /o:-d rem mydir . /s /t:w /o:-d /m:-7 rem Thanks to http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_10774-Advanced-Batch-File-Programming-YESTERDAY-BAT.html rem Thanks to http://www.dostips.com/DtTipsStringOperations.php set newcmd=dir set /a n=0 set /a x=1 echo. > mydirresults.txt :preloop if %1TRICK==TRICK goto prenomore set "one=%1" set c3=%one:~0,3% if TRICK%c3%==TRICK/m: goto interestingl if TRICK%c3%==TRICK/M: goto interestingu goto justdo :interestingl set n=%one:/m:=% goto keepgoing :interestingu set n=%one:/M:=% goto keepgoing :justdo set newcmd=%newcmd% %1 :keepgoing shift goto preloop :prenomore if %n% lss 0 set /a x=-1 if %n%TRICK==0TRICK %newcmd% >> mydirresults.txt if %n%TRICK==0TRICK goto nomore set /a dn=31 set /a d=%date:~4,2% set /a m=%date:~7,2% set /a y=%date:~10,4% set "dd=0%d%" set ddd=%dd:~-2% set "mm=0%m%" set mmm=%mm:~-2% %newcmd% | find "%ddd%/%mmm%/%y%" >> mydirresults.txt :beforeloop set /a "y4 = %y% %% 4" if %x%%m%TRICK==-112TRICK set /a dn=30 if %x%%m%TRICK==-110TRICK set /a dn=30 if %x%%m%TRICK==-17TRICK set /a dn=30 if %x%%m%TRICK==-15TRICK set /a dn=30 if %x%%m%TRICK==-13TRICK set /a dn=28 if %x%%m%%y4%TRICK==-130TRICK set /a dn=29 if %x%%m%TRICK==111TRICK set /a dn=30 if %x%%m%TRICK==19TRICK set /a dn=30 if %x%%m%TRICK==16TRICK set /a dn=30 if %x%%m%TRICK==14TRICK set /a dn=30 if %x%%m%TRICK==12TRICK set /a dn=28 if %x%%m%%y4%TRICK==120TRICK set /a dn=29 :loop set /a d+=%x% if %d% lss 1 ( set d=%dn% set /a m+=%x% if %m% lss 1 ( set m=12 set /a y+=%x% ) ) if %d% gtr %dn% ( set d=1 set /a m+=%x% if %m% gtr 12 ( set m=1 set /a y+=%x% ) ) set "dd=0%d%" set ddd=%dd:~-2% set "mm=0%m%" set mmm=%mm:~-2% set /a n-=%x% if %n%TRICK==0TRICK goto nomore %newcmd% | find "%ddd%/%mmm%/%y%" >> mydirresults.txt set /a "y4 = %y% %% 4" set /a dn=31 if %x%%m%TRICK==-112TRICK set /a dn=30 if %x%%m%TRICK==-110TRICK set /a dn=30 if %x%%m%TRICK==-17TRICK set /a dn=30 if %x%%m%TRICK==-15TRICK set /a dn=30 if %x%%m%TRICK==-13TRICK set /a dn=28 if %x%%m%%y4%TRICK==-130TRICK set /a dn=29 if %x%%m%TRICK==111TRICK set /a dn=30 if %x%%m%TRICK==19TRICK set /a dn=30 if %x%%m%TRICK==16TRICK set /a dn=30 if %x%%m%TRICK==14TRICK set /a dn=30 if %x%%m%TRICK==12TRICK set /a dn=28 if %x%%m%%y4%TRICK==120TRICK set /a dn=29 goto loop :nomore type mydirresults.txt