Frage : Index zum automatisch Löschen Akten älter als 1 Monat Windows- NTbediener

Wir haben einen NT-Bediener, der anmeldet ein Faltblatt-E:\Archive
every 3 Monate speichert, die, das Volumen aus freiem Raum heraus laufen lässt und ich physikalisch kommen muss, um alte Akten zu bearbeiten und zu löschen (3 Monate ziehen sich) zurück, beim Halten der Maschinenbordbücher des letzten Woche.

I morgens nach einer Weise zu einen Index automatisch laufen lassen suchend, der die Protokolldateien älter als 1 Monat löscht, also muss ich diese Akten anymore.
nicht manuell löschen

Antwort : Index zum automatisch Löschen Akten älter als 1 Monat Windows- NTbediener

Wir benutzen den folgenden Index, um die gleiche Sache, mit 7 Tagesauslassungen zu tun und die Reihenakte zu haben, die laufen gelassen wie eine zeitlich geplante Aufgabe.

Das SUBTRACTDAYS 7 zu vielen Tagen jedoch ändern, die Sie fordern.

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:
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
Weitere Lösungen  
 
programming4us programming4us