Bonjour,

voici ma problématique:
je dois faire un script qui sera utilisé le 1mai et qui doit:

Vérifier que le "dossierA" n'est pas vide
Copier les fichier.bak de plus de 30 jours du "dossierA" dans un dossier "safe"
Compresser le dossier "Safe" avec date du jour
supprimer les fichiers.bak qui ont été compressés dans le "dossierA" en gardant les fichiers du mois suivant

Exp:

Le script exécuté le le 1mai, sauvegarde les fichiers.bak du mois de mars (zip dans safe) puis les supprimes
dans "dossierA" en gardant les fichier.bak du mois de avril

Le script exécuté le le 1juin, sauvegarde les fichiers.bak du mois de avril (zip dans safe) puis les supprimes
dans "dossierA" en gardant les fichier.bak du mois de mai

Mon script

L'ordre des opération que j'ai défini dans mon script

Vérification si mon "dossierA" n'est pas vide
Déplacement de fichiers.bak de plus de 30jours dans le dossier "safe"
Compression du dossier "safe"

Je n'arrive pas à adapter mon script pour le traitement des fichiers de plus de 30 jours ?
pour les sections
'--------------------------------------------------------------
'Copie des fichiers de DossierA n-1 dans le dossier Safe
'--------------------------------------------------------------
'----------------------------------------------------------------------
'Suppression des fichiers .bak -n1 qui ont été zippé dans la dossierA
'----------------------------------------------------------------------

Merci d'avance pour votre aide


Mon script



Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Dim Source
Dim Destination
Dim Safe
DIM Log
Dim objFSO, FileLog, oShell, WshShell, oFS 
 
 
 
MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now)   
FILE_SUPP="E:\Program\projets\Traitement\Etude\DossierA\*.bak"
Source = "E:\Program\projets\Traitement\Etude\DossierA"
Destination = "S:\Historique\DossierA\DossierA_sauve_"& MyDate &".zip"
Safe = "E:\Program\projets\Traitement\Etude\DossierA\Safe"
 
Sub Msglog(severite,code,label)
	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
end sub
 
 
AgeMaximalFichiers = 30
 
DateSysteme = Date
 
 
Sub Msglog(severite,code,label)
	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
end sub
 
 
 
'--------------------------------------------------------------
'Test si le dossier DossierA n'est pas vide 
'--------------------------------------------------------------
 
Sub Verif_DossierA
 
	msglog "0","0000","-Debut: Verification que le Repertoire DossierA n'est pas vide 
	If objFSO.FolderExists(Source) Then
		Set objFolder = objFSO.GetFolder(Source)
		If objFolder.Files.Count = 0 And objFolder.SubFolders.Count = 0 Then
			Msglog "1","0001","WARNING: Le Repertoire DossierA est vide 
			wscript.quit (8)
		Else
			msglog "0","0000","Le Repertoire DossierA n'est pas vide 
		End If
	End If
	msglog "0","0000","-Fin: Verification que le Repertoire DossierA n'est pas vide 
End Sub
 
 
'--------------------------------------------------------------
'Copie des fichiers de DossierA n-1 dans le dossier Safe
'--------------------------------------------------------------
 
Sub Safe
 
Set Folder = fso.Getfolder(Source)
For Each File In Folder.Files
   If (DateDiff("d", File.DateCreated, DateSysteme) > AgeMaximalFichiers) Then
		If File.Attributes And 1 Then File.Attributes = File.Attributes - 1
        File.Copy()
	Else
 
End If
 
End Sub
 
 
'-------------------------------------------------------------------------------------------
'Compression du dossier safe contenant les fichiers .bak -n1 et déplacement dans Historique
'-------------------------------------------------------------------------------------------
 
 
Sub Compress 
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
msglog "0","0000","---Debut: Compression du répertoire " & Safe & " 
ZIP_CMD = "D:\7-Zip\7z.exe"
WshShell.Run  chr(34) & ZIP_CMD  & chr(34) & " a -tzip -y " & Destination & "  " &  Safe  
msglog "0","0000","---Fin:   Compression du répertoire " & Safe & " 
End sub
 
Sub Tempo
 
msglog "0","0000","---Debut: Tempo pour traitement"
wScript.Sleep 2000000
msglog "0","0000","---Fin:   Tempo pour traitement"
 
 
end Sub
 
 
'-------------------------------------------------------------------------------------------
'Suppression des fichiers .bak -n1 qui ont été zippé dans la dossierA
'-------------------------------------------------------------------------------------------
 
 
Sub SupprimeFiles
 
Set fso = CreateObject("Scripting.FileSystemObject")
 
Set Folder = fso.Getfolder(Source)
For Each File In Folder.Files
   If (DateDiff("d", File.DateCreated, DateSysteme) > AgeMaximalFichiers) Then
      If File.Attributes And 1 Then File.Attributes = File.Attributes - 1
         File.Delete()
      End If   
Next
 
end sub
 
msglog "0","0000","-Fin: Traitement du ZIP " & Source & " et déplacement dans " & Destination & " pour le centre " & centre
 
 
 
'---------------------------
' Corps su script
'---------------------------
 
msglog "0","0000","---Debut: Sauv_DossierA.vbs "
Verif_DossierA
Safe
Compress
Tempo
SupprimeFiles
msglog "0","0000","---Fin: Sauv_DossierA.vbs"
FileLog.Close