@echo weg
setlocal
reeks srcDir= " c:\sourcedir "
vastgestelde dirMask=*.*
als niet „%1 " == "" vastgestelde srcDir=%1
als niet om te bestaan „%srcDir%“ echoFolder %srcDir% niet exist.&goto: EOF
vraag: GETPARTS „%date%
vraag: SUBTRACTDAYS 7
reeks cutoffDate=%yy%/%mm%/%dd%
pushd.
CD /D %srcDir%
voor /f „delims=“ %%a binnen („dir /b /s /a %dirMask%“) roepen: VERWERK „%%a“ %%~ta
popd
goto: EOF
: PROCES
vraag: GETPARTS %2
Rem ** verwijdert echo hieronder uit de verklaring om het daadwerkelijke proces toe te laten
als /i „%cutoffDate%“ GTR „%yy%/%mm%/%dd%“ del /q %1
goto: EOF
: SUBTRACTDAYS
vastgestelde dayCnt=%1
als „%dayCnt% " == "" vastgestelde dayCnt=1
Rem trekt hier uw dagen af
vastgesteld /A dd=1%dd% - 100 - %dayCnt%
vastgesteld /A mm=1%mm% - 100
: CHKDAY
als /I %dd% GTR 0 goto DONESUBTRACT
vastgesteld /A mm=%mm% - 1
als /I %mm% GTR 0 goto ADJUSTDAY
vastgesteld /A mm=12
vastgesteld /A yy=%yy% - 1
: ADJUSTDAY
als %mm%==1 goto SET31
als %mm%==2 goto LEAPCHK
als %mm%==3 goto SET31
als %mm%==4 goto SET30
als %mm%==5 goto SET31
als %mm%==6 goto SET30
als %mm%==7 goto SET31
als %mm%==8 goto SET31
als %mm%==9 goto SET30
als %mm%==10 goto SET31
als %mm%==11 goto SET30
Maand 12 van rem ** dalingen door
: SET31
vastgesteld /A dd=31 + %dd%
goto CHKDAY
: SET30
vastgesteld /A dd=30 + %dd%
goto CHKDAY
: LEAPCHK
vastgesteld /A tt=%yy% %% 4
als niet %tt%==0 goto SET28
vastgesteld /A tt=%yy% %% 100
als niet %tt%==0 goto SET29
vastgesteld /A tt=%yy% %% 400
als %tt%==0 goto SET29
: SET28
vastgesteld /A dd=28 + %dd%
goto CHKDAY
: SET29
vastgesteld /A dd=29 + %dd%
goto CHKDAY
: DONESUBTRACT
als /I %mm% LSS 10 reeks mm=0%mm%
als /I %dd% LSS 10 reeks dd=0%dd%
goto: EOF
: GETPARTS
vastgestelde dt=%~1
vastgestelde tok=1-3
als „%dt: ~0,1%“ GTR „9“ plaatsen tok=2-4
vastgestelde yyyy=
voor /f „tokens=%tok% delims=.: /,“ %%a binnen („echo %~1“) (
voor /f „skip=1 tokens=2-4 delims=/-, ().“ %%x binnen („echo.^|de datum“) plaatste %%x=%%a&set %%y=%%b&set %%z=%%c
)
als niet „%yyyy% " == "" reeks yy=%yyyy%
als 1%yy% LSS 1000 (als %yy% LSS 70 (plaats yy=20%yy%) anders (plaats yy=19%yy%))
als 1%mm% LSS 100 reeks mm=0%mm%
als 1%dd% LSS 100 reeks dd=0%dd%
goto: EOF
|