@echo off
setlocal enabledelayedexpansion
::Change these as necessary. 'Since' must be in the format yyyymmdd
set BaseDir=c:\
set Since=20050901
for /R %BaseDir% %%f in (*.*) do call :ProcessFile "%%f"
goto :Done
:ProcessFile
::Get filename and date/time
set Filename=%1
set FileDate=%~t1
::Get year, convert to 4-digit year
:: -WinXP format '08/02/2005 11:57 AM'
:: -Win2k format '09/01/05 11:06p'
:: -assume 2-digit years >=70 are 19xx, and <70 are 20xx
Set FileYear=%FileDate:~8,1%%
if "%FileYear%"==" " (
set FileYear=%FileDate:~6,2%
if !FileYear! GEQ 70 (
set /a FileYear=!FileYear!+1900
) else (
set /a FileYear=!FileYear!+2000
)
) else (
set FileYear=%FileDate:~6,4%
)
set FormatDate=%FileYear%%FileDate:~0,2%%FileDate:~3,2%
if "%FormatDate%" GEQ "%Since%" echo %Filename% change on %FileDate%
::this eof indicates end of subroutine
goto :eof
:Done
echo This is done