Bonjour,

Je souhaiterais faire un script VBS me permettant de copier un fichier (en changeant son nom pour y inclure la date et l'heure) et de mettre ce fichier dans une archive auto-extractible 7Zip.
J'ai pratiquement réussi, mais je bloque sur un point :
- Soit je fais afficher les fenêtres de commandes DOS (avec le deuxième paramètre a 1 de la méthode .run de l'objet shell). Dans ce cas mon script fonctionne, mais je suis obligé d'intervenir manuellement en pressant une touche pour fermer cette fenêtre.
- Soit je ne fais pas afficher les fenêtres DOS (paramètre a 0) et dans ce cas il n'y a uniquement que la première commande DOS qui est effectuée (copie du fichier source) et pas la suite (renommage et création du Zip).

quelqu'un peut-il m'aider ?

merci

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
Call CopieFichier_7Zip ("D:\Documents\Dev\Access\T21\10T211\","G:\GRP_CNQ\Trisomie\10T211\BackUpSaisie\","10T211_Ttment",".mdb","C:\ProgramFiles\7-Zip\7z.exe")
 
Public Sub CopieFichier_7Zip(RepSource, RepCible, NomFic, ExtFic, Path7Zip)
Dim sDate, sMois, sJour, sHeure, sMin, sSec
 
'Récupération de la date et de l'heure pour le nom du fichier
If Len(Month(Now)) = 1 Then sMois = "0" & Month(Now) Else sMois = Month(Now)
If Len(Day(Now)) = 1 Then sJour = "0" & Day(Now) Else sJour = Day(Now)
If Len(Hour(Now)) = 1 Then sHeure = "0" & Hour(Now) Else sHeure = Hour(Now)
If Len(Minute(Now)) = 1 Then sMin = "0" & Minute(Now) Else sMin = Minute(Now)
If Len(Second(Now)) = 1 Then sSec = "0" & Second(Now) Else sSec = Second(Now)
sDate = Year(Now) & "_" & sMois & "_" & sJour & "_"  & sHeure & "_"  & sMin & "_" & sSec
 
Call CopieFichier_7Zip_CopyDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
Call CopieFichier_7Zip_RenameDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
Call CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
End Sub
 
Public Sub CopieFichier_7Zip_CopyDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
'Copie du fichier source sous un nom temporaire
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "CMD /K COPY " & RepSource & NomFic & ExtFic & " " & RepSource & "Tempo_" & sDate & ExtFic,1,true
End Sub
 
Public Sub CopieFichier_7Zip_RenameDos(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
'Renommage du fichier temporaire
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "CMD /K REN " & RepSource & "Tempo_" & sDate & ExtFic & " " & NomFic & "_" & sDate & ExtFic,1,true
End Sub
 
Public Sub CopieFichier_7Zip_CreeArchive(RepSource, RepCible, NomFic, ExtFic, Path7Zip, sDate)
'Création de l'archive
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "CMD /K " & Path7Zip & " a -sfx " & RepCible & NomFic & "_" & sDate & ".exe"& " -ssw " & RepSource & NomFic & "_" & sDate & ExtFic ,1,true 
End Sub