J'aurais besoin d'un petit coup de pouce ...
je dois zipper un répertoire (C:\01) et son contenu (sous répertoire et
fichier) et l'envoyer en ftp.
Mon vbs fonctionne presque comme je veux sauf que il ne prends pas en
compte le répertoire racine 01 qui doit compris dans le zip, et là je
galère ...
par ex:
c:\01\20080529\101\010101.tif
c:\01\20080529\101\010102.tif
c:\01\20080529\201\010201.tif
le zip doit être de la forme 01AAAAMMJJ.zip et il doit contenir tous le
contenu du répertoire 01 avec le 01.
Merci d'avance voilà
mon vbs (beaucoup de pêche à la google)
Option Explicit
Dim ZipFile, SrcFldrs, Fldr, cde1, cde2, cde3, cde4, oShell
Dim Z, DA, DM, DJ
Const FOF_CREATEPROGRESSDLG = &H0&
SrcFldrs = Array("C:\01")
DA=Year(Now)
DM=Month(Now)
If DM < 10 Then DM="0" & DM 'Pour fabriquer le mois sur 2 caractères
DJ=Day(Now)
If DJ < 10 Then DJ="0" & DJ 'Pour fabriquer le jour sur 2 caractères
Z="01"&DA&DM&DJ
ZipFile = "C:\"&Z&".zip"
'Create empty Zip File
CreateObject("Scripting.FileSystemObject") _
.CreateTextFile(ZipFile, True) _
.Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
With CreateObject("Shell.Application")
For each Fldr in SrcFldrs
'Copy the files to the compressed folder
.NameSpace(ZipFile).CopyHere .NameSpace(Fldr).Items,
FOF_CREATEPROGRESSDLG
'Keep script waiting until Compressing is done
On Error Resume Next
Do Until .NameSpace(ZipFile).Items.Count =
.NameSpace(Fldr).Items.Count
wScript.Sleep 3000
Loop
On Error GoTo 0
Next
End With
With CreateObject("Shell.Application") .NameSpace(ZipFile).CopyHere .NameSpace(rootFldr) On Error Resume Next Do Until .NameSpace(ZipFile).Items.Count = 1 WScript.Sleep(1000) Loop On Error Goto 0 End With --- Coupez ici : ZipFolder.vbs ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" wrote:
Bonjour à tous
Bonjour,
J'aurais besoin d'un petit coup de pouce ...
[...]
Pour prendre en compte le dossier racine dans l'archive compressée, il
suffit d'utiliser le Namespace racine comme origine du zip.
With CreateObject("Shell.Application")
.NameSpace(ZipFile).CopyHere .NameSpace(rootFldr)
On Error Resume Next
Do Until .NameSpace(ZipFile).Items.Count = 1
WScript.Sleep(1000)
Loop
On Error Goto 0
End With
--- Coupez ici : ZipFolder.vbs ---
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
With CreateObject("Shell.Application") .NameSpace(ZipFile).CopyHere .NameSpace(rootFldr) On Error Resume Next Do Until .NameSpace(ZipFile).Items.Count = 1 WScript.Sleep(1000) Loop On Error Goto 0 End With --- Coupez ici : ZipFolder.vbs ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
"---DGI972---" wrote:
Bonjour à tous
Bonjour,
J'aurais besoin d'un petit coup de pouce ... [...]
Pour prendre en compte le dossier racine dans l'archive compressée, il suffit d'utiliser le Namespace racine comme origine du zip.
With CreateObject("Shell.Application") .NameSpace(ZipFile).CopyHere .NameSpace(rootFldr) On Error Resume Next Do Until .NameSpace(ZipFile).Items.Count = 1 WScript.Sleep(1000) Loop On Error Goto 0 End With --- Coupez ici : ZipFolder.vbs ---
Que dire ....
Un énorme merci déjà Et puis que cela fonctionne exactement comme je le souhaitais.
Bonne journée à vous M LAURENT :oÞ
"---DGI972---" wrote:
Bonjour à tous
Bonjour,
J'aurais besoin d'un petit coup de pouce ...
[...]
Pour prendre en compte le dossier racine dans l'archive compressée, il
suffit d'utiliser le Namespace racine comme origine du zip.
With CreateObject("Shell.Application")
.NameSpace(ZipFile).CopyHere .NameSpace(rootFldr)
On Error Resume Next
Do Until .NameSpace(ZipFile).Items.Count = 1
WScript.Sleep(1000)
Loop
On Error Goto 0
End With
--- Coupez ici : ZipFolder.vbs ---
Que dire ....
Un énorme merci déjà
Et puis que cela fonctionne exactement comme je le souhaitais.
With CreateObject("Shell.Application") .NameSpace(ZipFile).CopyHere .NameSpace(rootFldr) On Error Resume Next Do Until .NameSpace(ZipFile).Items.Count = 1 WScript.Sleep(1000) Loop On Error Goto 0 End With --- Coupez ici : ZipFolder.vbs ---
Que dire ....
Un énorme merci déjà Et puis que cela fonctionne exactement comme je le souhaitais.
Bonne journée à vous M LAURENT :oÞ
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
| Bonne journée à vous M LAURENT
Bonne journée à vous également M ---DGI972--- :-)
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.f2f77d8594d39395.33554@NOSPAMlaposte.net
| Bonne journée à vous M LAURENT
Bonne journée à vous également M ---DGI972--- :-)
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr