@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

