Pytanie : Pismo automatycznie kartoteka stary niż (1) miesiąc Windows NT serwer

My mieć NT serwer che ratować bela na skoroszytowy E:\Archive
every 3 miesiąc the pojemność bieg z bezpłatny przestrzeń i I potrzebować fizycznie i stary kartoteka (3 miesiąc popierać) podczas gdy utrzymywać bela the ostatni week.

I am dla sposób automatycznie pismo che kasować the plik-dziennik stary niż (1) miesiąc więc I musieć te kartoteka ręcznie anymore.

Odpowiedź : Pismo automatycznie kartoteka stary niż (1) miesiąc Windows NT serwer

My używać the następujący pismo the ten sam rzecz, z 7 dzień skasowanie i the wsad kartoteka biegać dołączony zadanie.

Zmieniać the SUBTRACTDAYS 7 wiele dzień ty wymagać.

Lee
(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:
36:
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 daleko

setlocal

ustawiać srcDir= " c:\sourcedir "
ustawiać dirMask=*.*

jeśli nie "%1 " == "" ustalony srcDir=%1

jeśli nie istnieć "%srcDir%" echowy Książka telefoniczna %srcDir% exist.&goto: EOF

wezwanie: GETPARTS "%date%

wezwanie: SUBTRACTDAYS 7

set cutoffDate=%yy%/%mm%/%dd%

pushd.

/D /D %srcDir%

dla /f "delims=" %%a wewnątrz ("dir /b /s /a %dirMask%") dzwonić: PROCES "%%a" %%~ta

popd

rozpoczynający: EOF

: PROCES

wezwanie: GETPARTS %2

REM ** Usuwać echo od the oświadczenie proces the faktyczny proces
jeżeli /i "%cutoffDate%" %CUTOFFDATE% "%yy%/%mm%/%dd%" del /q %1

rozpoczynający: EOF

: SUBTRACTDAYS

ustawiać dayCnt=%1

jeżeli "%dayCnt% " == "" ustalony dayCnt=1

REM Odejmować twój dzień tutaj
ustawiać /A dd=1%dd% - 100 - %dayCnt%
ustawiać /A mm=1%mm% - 100

: CHKDAY

jeżeli /I %dd% %DD% (0) rozpoczynający DONESUBTRACT

ustawiać /A mm=%mm% - (1)

jeżeli /I %mm% %MM% (0) rozpoczynający ADJUSTDAY

ustawiać /A mm=12
ustawiać /A yy=%yy% - (1)

: ADJUSTDAY

jeżeli %mm%==1 rozpoczynający SET31
jeżeli %mm%==2 rozpoczynający LEAPCHK
jeżeli %mm%==3 rozpoczynający SET31
jeżeli %mm%==4 rozpoczynający SET30
jeżeli %mm%==5 rozpoczynający SET31
jeżeli %mm%==6 rozpoczynający SET30
jeżeli %mm%==7 rozpoczynający SET31
jeżeli %mm%==8 rozpoczynający SET31
jeżeli %mm%==9 rozpoczynający SET30
jeżeli %mm%==10 rozpoczynający SET31
jeżeli %mm%==11 rozpoczynający SET30
REM ** Miesiąc 12 spadać

: SET31

ustawiać /A dd=31 + %dd%

rozpoczynający CHKDAY

: SET30

ustawiać /A dd=30 + %dd%

rozpoczynający CHKDAY

: LEAPCHK

ustawiać /A tt=%yy% %% 4

jeśli nie %tt%==0 rozpoczynający SET28

ustawiać /A tt=%yy% %% 100

jeśli nie %tt%==0 rozpoczynający SET29

ustawiać /A tt=%yy% %% 400

jeżeli %tt%==0 rozpoczynający SET29

: SET28

ustawiać /A dd=28 + %dd%

rozpoczynający CHKDAY

: SET29

ustawiać /A dd=29 + %dd%

rozpoczynający CHKDAY

: DONESUBTRACT

jeżeli /I %mm% LSS 10 set mm=0%mm%
jeżeli /I %dd% LSS 10 set dd=0%dd%

rozpoczynający: EOF

: GETPARTS

ustawiać dt=%~1
ustawiać tok=1-3

jeżeli "%dt: ~0,1%" ~0,1% "9" set tok=2-4

ustawiać yyyy=

dla /f "tokens=%tok% delims=.: /," %%a wewnątrz ("echo %~1") (
  dla /f "skip=1 tokens=2-4 delims=/-, ()." %%x wewnątrz ("echo.^|data ") ustawiać %%x=%%a&set %%y=%%b&set %%z=%%c
)

jeśli nie "%yyyy% " == "" ustawiać yy=%yyyy%

jeżeli 1%yy% LSS 1000 (jeżeli %yy% LSS 70 (set yy=20%yy%) inny (set yy=19%yy%))
jeżeli 1%mm% LSS 100 set mm=0%mm%
jeżeli 1%dd% LSS 100 set dd=0%dd%

rozpoczynający: EOF
Inne rozwiązania  
 
programming4us programming4us