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 :

Decompression de fichier d'un dossier vers un autre avec 7z


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 Decompression de fichier d'un dossier vers un autre avec 7z
    Bonjour à tous,

    tout d'abord un grand merci pour votre aide lors de mes derniers posts.
    J'avance doucement mais surement grace à vos remarques. Mais il me reste encore à apprendre.

    J'ai créé un script qui effectue une vérification de la présence d'un fichier zip, si présent il pose un lock
    pour traiter le zip, car d'autre zip arrivent aléatoirement dans le dossier temp. la pose du lock permet de traiter fichier par fichier.


    Donc :

    1/ verif de la présence du fichier zip si pas présent il quitte : OK
    2/ Verif de la présence du .lock (avec le com di fichier.zip) si pas présent il le pose si present il annule le traitement (décompression) : OK
    3/ Decompression de file_name.zip du dossier:

    Xmlin_temp="C:\Appli\Plaque_" & plaque & "\Centre_" & Centre & "\temp"
    vers le dossier :
    Traitement="C:\Appli\Plaque_" & plaque & "\Centre_" & Centre & "\temp\Traitement"


    KO. Je n'arrive pas a decompresser le fichier


    Mon script : stat.vbs


    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
    '------------------------
    'Declaration variables
    '------------------------
    Dim Centre, Plaque, Fold, Log, oFl
    Dim objFSO, oFSO, FileLog, oShell, oFS, Lock
    Dim stRep, 
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set oShell = Wscript.CreateObject("Wscript.Shell")
    Set objArgs = Wscript.Arguments
     
    VERSION="1.00"
    centre = objArgs(0)
    Select Case Centre
    Case "1"
    	Plaque="Paris"
    Case "2"
    	Plaque="Paris"
    Case "3"
    	Plaque="Province"
    Case "4"
    	Plaque="Paris"
    Case "5"
    	Plaque="Province"
    Case Else
    	Wscript.echo "Erreur dans le parametre"
    	wscript.quit(2)
    End Select
     
    MyDate = Year(Now) & "" & Month(Now) & "" & Day(Now) & "_" & Hour(Now)& "" & Minute(Now)
     
    LOG="C:\Appli\Log\stat.vbs_"& MyDate &".log"
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set FileLog = FSO.CreateTextFile(Log)
     
     
    Traitement="C:\Appli\Plaque_" & plaque & "\Centre_" & Centre & "\temp\Traitement"
    Xmlin_temp="C:\Appli\Plaque_" & plaque & "\Centre_" & Centre & "\temp"
    Zip_cmd = "D:\7-Zip\7z.exe"
    Lock="C:\Fichiers_doublons\" & file_name & ".lock"
     
     
     
    '--------------------------------------------
    'Initialisation des log pour chaque centre
    '--------------------------------------------
    Sub Msglog(severite,code,label)
    	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
    	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label)
    End sub
     
    '--------------------------------------------------------------------
    'Test de la présence de fichier zip pour chaque centre
    '--------------------------------------------------------------------
     
    sub Verif_ZIP
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    stRep = "C:\Appli\Plaque_" & plaque & "\Centre_" & Centre & "\temp"
    		If oFSO.FolderExists(stRep) Then
    	For each oFl in  oFSO.GetFolder(stRep).Files
       file_name=oFl.Name
       wscript.echo file_name 'verification du nom du fichier.zip
    	Next
    	MSGLog 0,"0003","Verification de la présence du fichier zip "
    	if not FSO.FileExists (file_name) Then
    	MSGLog 0,"0003","Pas de fichier zip."
    	FileLog.Close
    	Wscript.quit
    	End If
    End If
    End sub
     
    '--------------------------------------------
    'Vérification du lock pour chaque centre
    '--------------------------------------------
     
    Sub Verif_Lock
    msglog "0","0000","-Debut: Verification de la non presence du Lock pour le centre " & centre
    		If objFSO.FileExists ("C:\Fichiers_doublons\" & file_name & ".lock")  Then
    		'wscript.echo (Lock)
    	msglog "1","0001","WARNING: Programme deja lance pour le centre " & centre
    		wscript.quit (8)
    	else
    		Set FSys = CreateObject("Scripting.FileSystemObject")
    	msglog "0","0000","-Debut: Pose Lock " & Lock & " pour le centre " & centre	
    		Set MonFic = FSys.CreateTextFile("C:\Fichiers_doublons\" & file_name & ".lock")
    	msglog "0","0000","-Fin: Pose du Lock " & Lock & " pour le centre " & centre
    		end if
    	msglog "0","0000","-Fin: Verification de la non presence du Lock pour le centre " & centre
    end sub			
     
     
    '------------------------------------
    'Decompression du xml.zip
    '------------------------------------
     
    Sub Decompress
    MSGLog 0,"0003","Décompression du fichier "
    if not FSO.FileExists (file_name) Then
    wscript.echo file_name
    	MSGLog 0,"0003","Pas de fichier zip."
    	FileLog.Close
    	Wscript.quit
    End If
     
    oShell.Run Zip_cmd & "\7z.exe x "file_name" -o "Traitement"", true  ' On décompresse le fichier  vers le dossier Traitement
    End sub
     
    '---------------------
    ' Corps su script
    '---------------------
     
    msglog "0","0000","---Debut:------- xml.vbs "
    Verif_ZIP
    Verif_Lock
    Decompress
    msglog "0","0000","---Fin:--------- xml.vbs"
    FileLog.Close

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Bonjour;

    La ligne 39 Zip_cmd = "D:\7-Zip\7z.exe" devrait être Zip_cmd = "D:\7-Zip\7z.exe e " .
    La lettre e après le nom de l'exécutable lui demande de faire une extraction.

    D'autre part(ce n'est grave mais c'est mieux de le faire), dans la boucle lignes 13 à 27, on peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select Case Centre
       Case "1", "2", "4"
          Plaque="Paris"
       Case "3", "5"
          Plaque="Province"
       Case Else
          Wscript.echo "Erreur dans le parametre"
          wscript.quit(2)
    End Select
    La ligne 106 devrait se présenter ainsi : oShell.Run Zip_cmd & file_name & " -o" & Traitement ,0 , true.
    ou encore en modifiant Zip_Cmd : Zip_Cmd = "Cmd /C D:\7-Zip\7z.exe e " car l'autre version renvoie l'erreur "le fichier spécifié est introuvable"

  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 Merci c'est parfait et biensûre résolu
    Merci c'est parfait et biensûre résolu

    PAB/31/SAB

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] copier des fichiers de plusieurs dossiers vers un dossier unique
    Par gorin13 dans le forum Général Python
    Réponses: 4
    Dernier message: 23/04/2015, 12h03
  2. [XL-2010] VBA : Couper/ Coller des fichiers d'un dossier vers un autre
    Par Glnmchl dans le forum Excel
    Réponses: 4
    Dernier message: 22/04/2015, 16h20
  3. Réponses: 5
    Dernier message: 18/07/2014, 14h36
  4. [Batch] Déplacer les fichiers des dossiers et des sous dossiers vers un autre dossier
    Par mathou115 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 25/06/2014, 10h17
  5. Copier un fichier d'un dossier vers un autre
    Par rvaysse dans le forum VB.NET
    Réponses: 10
    Dernier message: 13/08/2007, 15h33

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