1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 6: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137:
@echo weg setlocal srcDir= " c:\sourcedir " einstellen dirMask=*.* einstellen wenn == nicht „%1 " "" gesetztes srcDir=%1 wenn, nicht zu existieren „%srcDir%“ das Echo Verzeichnis %srcDir% nicht exist.&goto tut: EOF Anruf: GETPARTS „%date% Anruf: SUBTRACTDAYS 7 Satz cutoffDate=%yy%/%mm%/%dd% pushd. cd /D %srcDir% für /f „delims=“ %%a innen („dir /b /s /a %dirMask%") benennen: PROZESS „%%a“ %%~ta popd Goto-: EOF : PROZESS Anruf: GETPARTS %2 Rem ** Echo von der Aussage unten entfernen, um dem tatsächlichen Prozess zu ermöglichen wenn /i „%cutoffDate%“ GTR „%yy%/%mm%/%dd%“ Del /q %1 Goto-: EOF : SUBTRACTDAYS dayCnt=%1 einstellen wenn „%dayCnt% " == "" gesetztes dayCnt=1 Rem subtrahieren Ihre Tage hier /A dd=1%dd% - 100 - %dayCnt% einstellen /A mm=1%mm% - 100 einstellen : CHKDAY wenn /I %dd% GTR 0 Goto- DONESUBTRACT /A mm=%mm% - 1 einstellen wenn /I %mm% GTR 0 Goto- ADJUSTDAY /A mm=12 einstellen /A yy=%yy% - 1 einstellen : ADJUSTDAY wenn %mm%==1 Goto- SET31 wenn %mm%==2 Goto- LEAPCHK wenn %mm%==3 Goto- SET31 wenn %mm%==4 Goto- SET30 wenn %mm%==5 Goto- SET31 wenn %mm%==6 Goto- SET30 wenn %mm%==7 Goto- SET31 wenn %mm%==8 Goto- SET31 wenn %mm%==9 Goto- SET30 wenn %mm%==10 Goto- SET31 wenn %mm%==11 Goto- SET30 Rem ** Monat 12 fällt durch : SET31 /A einstellen dd=31 + %dd% Goto- CHKDAY : SET30 /A einstellen dd=30 + %dd% Goto- CHKDAY : LEAPCHK /A tt=%yy% %% 4 einstellen wenn nicht %tt%==0 Goto- SET28 /A tt=%yy% %% 100 einstellen wenn nicht %tt%==0 Goto- SET29 /A tt=%yy% %% 400 einstellen wenn %tt%==0 Goto- SET29 : SET28 /A einstellen dd=28 + %dd% Goto- CHKDAY : SET29 /A einstellen dd=29 + %dd% Goto- CHKDAY : DONESUBTRACT wenn Satz mm=0%mm% /I-%mm% LSS 10 wenn Satz dd=0%dd% /I-%dd% LSS 10 Goto-: EOF : GETPARTS dt=%~1 einstellen tok=1-3 einstellen wenn „%dt: ~0.1%“ GTR „9“ einstellte tok=2-4 te yyyy= einstellen für /f „tokens=%tok% delims=.: /,“ %%a innen („Echo %~1“) tun ( für /f „skip=1 tokens=2-4 delims=/-, ().“ %%x innen („echo.^|Datum ") einstellen %%x=%%a&set %%y=%%b&set %%z=%%c en ) wenn nicht „%yyyy% " das == "" yy=%yyyy% einstellte wenn 1%yy% LSS 1000 (wenn %yy% LSS 70 (yy=20%yy% einstellen), sonst (yy=19%yy% einstellen)) wenn 1%mm% LSS 100 Satz mm=0%mm% wenn 1%dd% LSS 100 Satz dd=0%dd% Goto-: EOF