IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Compression dossier de grosse taille


Sujet :

VBScript

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Points : 76
    Points
    76
    Par défaut Compression dossier de grosse taille
    Bonjour,

    je rencontre un petit soucis lors de la compression d'un dossier contenant des .pdf.

    Pour la compression d'un dossier d'une taille de 1.30 Go c'est OK.

    Lorsque je veux compresser un dossier de plus de plus de 2 Go cela plante
    en m'indiquant que la taille de mon dossier est trop grande

    Je souhaiterais pouvoir traiter des dossiers de grosse taille 2,5 Go ; 3Go

    Auriez-vous une astuce SVP.

    Merci


    J'utilise le script ci-dessous.


    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
    Dim Centre
    Dim Plaque
    Dim Source
    Dim Destination
    DIM Log
    Dim objFSO, objFolder, FileLog,fso,fileflag,fileBak
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objArgs = Wscript.Arguments 
     
    VERSION="1.00"
     
    centre = objArgs(0) 
     
    Select Case Centre
    Case "PARIS"
    	Plaque="NORD"
    Case "MARSEILLE"
    	Plaque="SUD"
    Case "LILLE"
    	Plaque="NORD"
    Case "TOULOUSE"
    	Plaque="SUD"
    Case "LYON"
    	Plaque="CENTRE"
    Case Else
    	Wscript.echo "Erreur dans le parametre"
    	wscript.quit(2)
    End Select
     
     
    Log="C:\Appli\Log\Historique\Historique_" & centre & ".log"
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set FileLog = FSO.CreateTextFile(Log)
     
    MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now)   
    FILE_SUPP="C:\Appli\Common\archivage\" & Centre & "\etats\*.pdf"
    Source = "C:\Appli\Common\archivage\" & Centre & "\etats"
    Destination = "S:\Historique\etats\Liste_Etats_"& Centre &" "& MyDate &".zip"
     
    Sub Msglog(severite,code,label)
    	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
    	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
    end sub
     
    'Debut du traitement
     
    For Each Centre In Split(Centre,";",-1)
     
     
    MyHex = _
    Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
     
    For i = 0 To UBound(MyHex)
        MyBinary = MyBinary & Chr(MyHex(i))
     
    	Next
     
    Set oShell = CreateObject("WScript.Shell")
    Set oFileSys = CreateObject("Scripting.FileSystemObject")
     
    'Creation du zip
    msglog "0","0000","-Debut: Traitement du ZIP " & Source & " et déplacement dans " & Destination & " pour le centre " & centre
    set oCTF = oFileSys.CreateTextFile(Destination, True)
    oCTF.Write MyBinary
    oCTF.Close
    Set oCTF = Nothing
     
    Set oApp = CreateObject("Shell.Application")
    Set oFolder = oApp.NameSpace(Source)
    If Not oFolder Is Nothing Then _
        oApp.NameSpace(Destination).CopyHere oFolder.Items
     
    wScript.Sleep 3600000
     
    Set oFile = Nothing
     
    msglog "0","0000","-Fin: Traitement du ZIP " & Source & " et déplacement dans " & Destination & " pour le centre " & centre
     
     
     
    Next
     
    Sub SupprimeFiles
    	Dim objsupp
    	Set objsupp = WScript.CreateObject("Scripting.FileSystemObject")
    	msglog "0","0000","-Debut: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre
    		objsupp.deletefile FILE_SUPP , force
    	msglog "0","0000","-Fin: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre	
    end sub
     
    msglog "0","0000","---Debut: Historique.vbs "
    SupprimeFiles
    msglog "0","0000","---Fin: Historique.vbs"
    FileLog.Close

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Essayez cet utilitaire : UHARC pour Windows est un compresseur puissant utilisant UHARC04. Son taux de compression dépasse ceux des ZIP, RAR, etc.


  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Points : 76
    Points
    76
    Par défaut Compression dossier de grosse taille
    Merci beaucoup hackoofr pour votre réponse,

    mais j'ai comme contrainte d'utiliser des produits validés par ma société.

    Donc je dois faire avec winzip.

    Je crois que je que cela ne va pas être facile...

    PAB/31/SAB

  4. #4
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Points : 76
    Points
    76
    Par défaut Compression dossier de grosse taille
    Bonjour à tous,

    je viens d'installer 7 zip sur le serveur.

    Je ne connais pas 7 zip.

    Pourriez-vous m'indiquer SVP les paramètres à inclure dans mon script pour compresser :

    "C:\Appli\Common\archivage\" & Centre & "\etats"

    "etats" étant un dossier de plus de 3 Go contenant des .pdf

    voir script plus bas

    Merci à tous.

    PAB/31/SAB

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    je viens d'installer 7 zip sur le serveur.
    excellent choix

    Pourriez-vous m'indiquer SVP les paramètres à inclure dans mon script pour compresser
    il y a beaucoup d'options possibles, c'est à toi de les définir
    les packages sont livrés avec un fichier d'aide .chm complet qui décrit la syntaxe des options de la version en ligne de commande
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par PAB/31/SAB Voir le message
    Pourriez-vous m'indiquer SVP les paramètres à inclure dans mon script pour compresser :
    "C:\Appli\Common\archivage\" & Centre & "\etats"
    "etats" étant un dossier de plus de 3 Go contenant des .pdf

    Astuce : En VBScript, il y a plusieurs activités qui peuvent conduire à la nécessité de produire des chaînes qui ont des guillemets (") . Souvent cela se produit en raison de la nécessité de lancer une commande externe où les espaces sont présents dans un chemin.
    Voila une petite fonction très simple qu'on peut l'utiliser sans douleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function qq(strIn)
        qq = Chr(34) & strIn & Chr(34)
    End Function
    Exemple d'utilisation de cette fonction:
    Par exemple vous voulez que les utilisateurs soient en mesure d'entrer dans le chemin et le nom d'un fichier zip et vous affichera une liste des fichiers de l'archive. Pour cela, en utilisant par exemple 7-Zip l'utilitaire de compression avec sa ligne de commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Dim strArchivePath
    Dim strCMD
     
    strArchivePath = InputBox("Entrez le chemin de l'archive")
    strCMD = qq("C:\Program Files\7-zip\7z.exe") & " l " & qq(strArchivePath)
    WScript.Echo strCMD
     
    Function qq(strIn)
        qq = Chr(34) & strIn & Chr(34)
    End Function
    La commande suivante crée une archive 7z :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a archive.7z fichier_a_archiver
    Cette commande extrait les fichiers et dossiers d’une archive 7z :
    NB : Dans le dossier où est installé 7zip, il y a un fichier d'aide:"7-zip.chm", TOUTES les commandes sont expliquées

  7. #7
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Points : 76
    Points
    76
    Par défaut Compression dossier de grosse taille Répondre à la discussion
    Merci encore pour la réponse Hackfoor,

    j'ai donc adapté (en rouge/gras) mon script en fonction de mon besoin, et cela ne fonctionne toujours pas?
    Je n'arrive pas a compresser le dossier factures.

    Merci d'avance pour les idées.

    PAB/31/SAB

    j'ai modifié mon script comme ceci:

    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
    Dim Centre
    Dim Plaque
    Dim Source
    Dim Destination
    DIM Log
    Dim objFSO, objFolder, FileLog,fso, oShell
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objArgs = Wscript.Arguments 
     
    VERSION="1.00"
     
    centre = objArgs(0) 
     
    Select Case Centre
    Case "PARIS"
    	Plaque="NORD"
    Case "MARSEILLE"
    	Plaque="SUD"
    Case "LILLE"
    	Plaque="NORD"
    Case "TOULOUSE"
    	Plaque="SUD"
    Case "LYON"
    	Plaque="CENTRE"
    Case Else
    	Wscript.echo "Erreur dans le parametre"
    	wscript.quit(2)
    End Select
     
     
    Log="C:\Appli\Log\Historique\Historique_" & centre & ".log"
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set FileLog = FSO.CreateTextFile(Log)
     
    MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now)   
    FILE_SUPP="C:\Appli\Common\archivage\" & Centre & "\etats\*.pdf"
    Source = "C:\Appli\Common\archivage\" & Centre & "\etats"
    Destination = "S:\Historique\etats\Liste_Etats_"& Centre &" "& MyDate &".zip"
     
    Sub Msglog(severite,code,label)
    	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
    	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
    end sub
     
    Sub Compress
    
    Set oShell = Wscript.CreateObject("Wscript.Shell")
    s7zLocation = "C:\Program Files\7-Zip\"
    oShell.Run """" & s7zLocation & "7z.exe"" a -tzip -y """ & Destination & " " & Source & "", 0, True
    
     
    wScript.Sleep 200000
     
    End sub
     
    msglog "0","0000","-Fin: Traitement du ZIP " & Source & " et déplacement dans " & Destination & " pour le centre " & centre
     
    Next
     
    Sub SupprimeFiles
    	Dim objsupp
    	Set objsupp = WScript.CreateObject("Scripting.FileSystemObject")
    	msglog "0","0000","-Debut: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre
    		objsupp.deletefile FILE_SUPP , force
    	msglog "0","0000","-Fin: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre	
    end sub
     
    msglog "0","0000","---Debut: Historique.vbs "
    Compress
    'SupprimeFiles
    msglog "0","0000","---Fin: Historique.vbs"
    FileLog.Close

  8. #8
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Points : 76
    Points
    76
    Par défaut Compression dossier de grosse taille
    Bonjour,

    Lorsque je lance mon script j'ai le message suivant :

    "WshShell.Run: Impossible d'attendre pour le traitement"

    Là je bloque ?????

    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
    Dim Centre
    Dim Plaque
    Dim Source
    Dim Destination
    DIM Log
    Dim objFSO, objFolder, FileLog,fso, oShell
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objArgs = Wscript.Arguments 
     
    VERSION="1.00"
     
    centre = objArgs(0) 
     
    Select Case Centre
    Case "PARIS"
    	Plaque="NORD"
    Case "MARSEILLE"
    	Plaque="SUD"
    Case "LILLE"
    	Plaque="NORD"
    Case "TOULOUSE"
    	Plaque="SUD"
    Case "LYON"
    	Plaque="CENTRE"
    Case Else
    	Wscript.echo "Erreur dans le parametre"
    	wscript.quit(2)
    End Select
     
     
    Log="C:\Appli\Log\Historique\Historique_" & centre & ".log"
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set FileLog = FSO.CreateTextFile(Log)
     
    MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now)   
    FILE_SUPP="C:\Appli\Common\archivage\" & Centre & "\etats\*.pdf"
    Source = "C:\Appli\Common\archivage\" & Centre & "\etats"
    Destination = "S:\Historique\etats\Liste_Etats_"& Centre &" "& MyDate &".zip"
     
    Sub Msglog(severite,code,label)
    	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
    	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
    end sub
     
    Sub Compress
     
    Set oShell = Wscript.CreateObject("Wscript.Shell") 
    s7zLocation = "C:\Program Files\7-Zip\" 
    oShell.Run """" & s7zLocation & """7z.exe"""" a -tzip  """ & Destination & " " & Source & """""", 0, True
     
     
    wScript.Sleep 200000
     
    End sub
     
    msglog "0","0000","-Fin: Traitement du ZIP " & Source & " et déplacement dans " & Destination & " pour le centre " & centre
     
    Next
     
    Sub SupprimeFiles
    	Dim objsupp
    	Set objsupp = WScript.CreateObject("Scripting.FileSystemObject")
    	msglog "0","0000","-Debut: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre
    		objsupp.deletefile FILE_SUPP , force
    	msglog "0","0000","-Fin: Suppresion des fichiers " & FILE_SUPP & " pour le centre " & centre	
    end sub
     
    msglog "0","0000","---Debut: Historique.vbs "
    Compress
    'SupprimeFiles
    msglog "0","0000","---Fin: Historique.vbs"
    FileLog.Close

  9. #9
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    déjà j'ajouterais entre la ligne 50 et 51 la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox """" & s7zLocation & """7z.exe"""" a -tzip  """ & Destination & " " & Source & """"""
    histoire de vérifier la syntaxe de ce que je veux faire exécuter

    ensuite je ne vois pas l'intérêt de la ligne
    à partir du moment où la méthode Run est définie avec le flag bWaitOnReturn actif...
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. [Batch] Verifier la presence d'un dossier daté avec taille mini ?
    Par hélios44 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 17/05/2015, 16h50
  2. Compresser dossier et sous dossier (Zip) ?
    Par SoGeek dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 01/01/2011, 19h53
  3. [JPEG] Compression & calcul de la taille physique du fichier
    Par JYves dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 17/12/2008, 16h41
  4. [Configuration] Problème d'upload image grosse taille
    Par chicho dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/09/2007, 17h31
  5. Optimiser l'affichage d'un fichier XML de grosse taille...
    Par UnPeuPerdu dans le forum XML/XSL et SOAP
    Réponses: 11
    Dernier message: 03/06/2004, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo