@echo av
setlocal
fastställd srcDir= " c:\sourcedir ",
uppsättning dirMask=*.*
om "" uppsättning srcDir=%1 för == inte ”%1 "
om att inte finnas ”%srcDir%” eka, arkiv %srcDir% gör inte exist.&goto: EOF
appell: GETPARTS ”%date%
appell: SUBTRACTDAYS 7
uppsättning cutoffDate=%yy%/%mm%/%dd%
pushd.
cd /D %srcDir%
för /f ”delims=” %%a (”dir /b /s /a %dirMask%”) gör in appellen: BEARBETA ”%%a” %%~ta
popd
goto: EOF
: PROCESSAA
appell: GETPARTS %2
REM ** Ta bort ekar från det nedanföra meddelandet för att möjliggöra det faktiskt bearbetar
om /i ”%cutoffDate%” GTR ”%yy%/%mm%/%dd%” del /q %1
goto: EOF
: SUBTRACTDAYS
uppsättning dayCnt=%1
om uppsättning dayCnt=1 ”för %dayCnt% " ==""
REM subtraherar dina dagar här
fastställda /A dd=1%dd% - 100 - %dayCnt%
fastställda /A mm=1%mm% - 100
: CHKDAY
om /I %dd% GTR 0 goto DONESUBTRACT
fastställda /A mm=%mm% - 1
om /I %mm% GTR 0 goto ADJUSTDAY
fastställda /A mm=12
fastställda /A yy=%yy% - 1
: ADJUSTDAY
om %mm%==1 goto SET31
om %mm%==2 goto LEAPCHK
om %mm%==3 goto SET31
om %mm%==4 goto SET30
om %mm%==5 goto SET31
om %mm%==6 goto SET30
om %mm%==7 goto SET31
om %mm%==8 goto SET31
om %mm%==9 goto SET30
om %mm%==10 goto SET31
om %mm%==11 goto SET30
REM ** Månad 12 nedgångar igenom
: SET31
fastställda /A dd=31 + %dd%
goto CHKDAY
: SET30
fastställda /A dd=30 + %dd%
goto CHKDAY
: LEAPCHK
fastställda /A tt=%yy% %% 4
om inte %tt%==0 goto SET28
fastställda /A tt=%yy% %% 100
om inte %tt%==0 goto SET29
fastställda /A tt=%yy% %% 400
om %tt%==0 goto SET29
: SET28
fastställda /A dd=28 + %dd%
goto CHKDAY
: SET29
fastställda /A dd=29 + %dd%
goto CHKDAY
: DONESUBTRACT
om /I %mm% LSS 10 uppsättning mm=0%mm%
om /I %dd% LSS 10 uppsättning dd=0%dd%
goto: EOF
: GETPARTS
uppsättning dt=%~1
uppsättning tok=1-3
om ”%dt: ~0.1%” GTR ”9” uppsättning tok=2-4
fastställd yyyy=
för /f ”tokens=%tok% delims=.: /” %%a in (”eka %~1”), gör (
för /f ”skip=1 tokens=2-4 delims=/-, ().”, %%x in (”echo.^|datera”) gör uppsättningen %%x=%%a&set %%y=%%b&set %%z=%%c
)
om uppsättning yy=%yyyy% för inte ”%yyyy% " ==""
om 1%yy% LSS 1000 (om %yy% LSS 70 (uppsättning yy=20%yy%) annars (uppsättning yy=19%yy%))
om 1%mm% LSS 100 uppsättning mm=0%mm%
om 1%dd% LSS 100 uppsättning dd=0%dd%
goto: EOF
|