Bonjour à tous,
J'ai créé un script pour faire un gros traitement.
Dans ma gestion d'erreur, je veux envoyer un mail en cas de problème.
Jusque là, pas de soucis.
Mon soucis viens de la partie de code qui va zipper mon dossier via 7zip. Il fait bien le traitement mais mon script continu les étapes même si la compression n'est pas fini. Du coup, la gestion d'erreur ne se fait pas correctement.
Comment faire pour qu'il soit en attente d'un retour de 7zip? Si c'est possible bien sur.
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 'ZIP du dossier On Error Resume Next LogFile.writeline(now & ": Début de la compression du fichier") LogFile.writeline("") WScript.Echo(now & ": Début de la compression du fichier") Dim CheminDossierAZip CheminDossierAZip = "C:\Users\xxxxx\" & DateRemaniee Dim CheminDest CheminDest = "C:\Users\xxxxx\Desktop\Nouveau dossier\7zip\" Dim ObjShell Set ObjShell = CreateObject("WScript.shell") ObjShell.Exec "C:\Program Files\7-Zip\7z.exe a -r " & chr(34) & CheminDest & DateRemaniee & chr(34) & " " & chr(34) & CheminDossierAZip 'lance bien la compression puis passe à l'étape calcul j-3 alors que la compression n'est pas finie If Err.Number <> 0 Then LogFile.writeline(now & ": Erreur lors de la compression du fichier") LogFile.writeline "" WScript.echo (now & ": Erreur lors de la compression du fichier") Corps1 = "Une erreur est survenue lors de la compression du dossier " & DateRemaniee & "." Corps2 = "Ceci est un message automatique. Merci de ne pas répondre." PJ = "C:\Users\xxxxx\Desktop\Nouveau dossier\Logs\" & Dateremaniee & ".txt" call Email("xxxxxxx","Erreur de sauvegarde perturbo","xxxxx",Corps1 & chr(13) & chr(13) & Corps2, PJ) Err.Clear wscript.Quit End If On Error Goto 0 ' Calcule jour -3 pour suppression dossier YesterdayDate = now - 3 annee = Right(String(2, "0") & Year(YesterdayDate), 2) mois = Right(String(2, "0") & Month(YesterdayDate), 2) jour = Right(String(2, "0") & Day(YesterdayDate), 2) DateRemaniee = "" & annee & mois & jour
Partager