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 :

Dézippage incorrecte avec run 7za.exe


Sujet :

VBScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Points : 57
    Points
    57
    Par défaut Dézippage incorrecte avec run 7za.exe
    Bonjour,

    J'ai un souci avec la commande wshshell.Run qui lance un programme 7za.exe avec des paramétres (mot de passe, destination)

    je met un fichier .zip dans le répertoire adequoit ,et quand je lance mon vbs j'ai trois fichiers .csv ,et le script ne continu pas son traitement, dans le gestionnaire de tache j'ai toujours le 7za.exe et le wscript.exe en cours d’exécution,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For Each oFile In oFolder.files
      	If Right(oFile.Name,3) = "zip" Then
     
    			Set wshshell = CreateObject("WScript.Shell") 
     
    			wshshell.Run "E:\BREF_Dataload\Import\AirPlus\OUTIL\7za.exe x " & qq(zipfile) & " -p" & qq(password) & " -o" & qq(outputfile), 0, true
    			counter = counter + 1
    			Exit For
     
    		End If
    Next
    ces trois fichiers csv sont déjà traités dans un lancement ancien et je ne sais pas comment ni pourquoi mes objet se rappel toujours de ces trois fichiers
    J'ai essayé de faire : Set wshshell = Nothing à l'intérieur de la boucle mais ça n'a pas marché

    aidez moi s'il vous plait

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    commencer déjà par vérifier en commandes manuelles …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Points : 57
    Points
    57
    Par défaut
    Merci pour votre réponse,

    en fait le script fonctionne correctement dans autre serveur ce problème n'est reproductible que dans notre serveur de prod.
    donc je pense que cela a une relation avec l’environnement de l’exécution.

    un truc de mémoire peut être parce que ça garde les noms des anciens fichiers!

  4. #4
    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,
    une question et une remarque :
    1. que fait la fonction qq()
    2. ta boucle balaye le répertoire oFolder à la recherche de fichiers portant l'extension zip
    mais tu alimentes 7za avec une variable zipfile codée en dur.......
    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

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Points : 57
    Points
    57
    Par défaut
    Bonjour
    la fonction qq colle des ""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function qq(str)
      qq = Chr(34) & str & Chr(34)
    End Function
    ce syntaxe permet un dézipage et quand je fais :
    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
     
    For Each oFile In oFolder.files
     
      	If Right(oFile.Name,3) = "zip" Then
     
    		'	WScript.Echo "oFile.Name" & oFile.Name
     
     
    			Set wshshell = CreateObject("WScript.Shell") 
    			WScript.Echo "oFile.Name"  & oFile.Name
     
    			'wshshell.Run "E:\BREF_Dataload\Import\AirPlus\OUTIL\7za.exe x " & qq(zipfile) & " -p" & qq(password) & " -o" & qq(outputfile), 0, true
     
    			wshshell.Run "E:\BREF_Dataload\Import\AirPlus\OUTIL\7za.exe x " & qq(oFile.Name) & " -p" & qq(password) & " -o" & qq(outputfile), 0, true
     
    			WScript.Echo "Apres de dézip" 
    			counter = counter + 1
     
    			Exit For
     
    		End If
    Next
    j'ai commenté tout le reste du script en gardant juste ce bloque,il n'y a pas de dézippage en utilisant juste le file.name et je ne sais pas pourquoi
    J'ai essayé aussi de lancer en commande manuelle en lançant juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    7za.exe x   "oFile.Name"  -p  "password" -o "outputfile"
    cela me donne :
    Error:
    Incorrecte commande line

  6. #6
    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
    et la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WScript.Echo "oFile.Name"  & oFile.Name
    te renvoie le nom du fichier zip correct et complet ?
    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

  7. #7
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Points : 57
    Points
    57
    Par défaut
    Vos questions me redirigent vers la solution

    le file.name retourne effectivement le nom complet du fichier (nomFichier.csv.zip), mais je pense que le complet ici sera mieux le chemin entier + le nom du fichier
    le dézipage est OK avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    wshshell.Run "E:\BREF_Dataload\Import\AirPlus\OUTIL\7za.exe x " & qq(zipfile &"\"& oFile.Name) & " -p" & qq(password) & " -o" & qq(outputfile), 0, true
    mais ça bloque dans un autre endroit de mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set objExcel = CreateObject("Excel.Application" )
    ça donne le message :

    ---------------------------
    Windows Script Host
    ---------------------------
    Script: \\SERVEUR\BREF_Dataload\Import\AirPlus\OUTIL\Script_ExtractionZip.vbs
    Line: 92
    Char: 9
    Error: Permission denied: 'CreateObject'
    Code: 800A0046
    Source: Microsoft VBScript runtime error

    ---------------------------
    OK
    ---------------------------

    pourquoi ça ne marche plus , normalement après le dézipage on ouvre le fichier avec excel et on supprime une ligne

  8. #8
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 67
    Points : 57
    Points
    57
    Par défaut
    Je me suis connecté avec un autre compte ayant plus de droit et ça fonctionne parfaitement

    Je vous remercie amplement

  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
    effectivement il fallait deviner que la variable zipfile
    contenait en réalité le chemin du répertoire seul...
    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

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

Discussions similaires

  1. Conversion incorrecte avec atof ou strtod
    Par sber74 dans le forum C
    Réponses: 16
    Dernier message: 15/03/2006, 20h32
  2. Réponses: 5
    Dernier message: 16/02/2006, 00h48
  3. Problème avec TWebBrowser et .exe
    Par secteur_52 dans le forum Composants VCL
    Réponses: 22
    Dernier message: 01/12/2005, 09h19
  4. Affichage incorrect avec une JScrollPane
    Par tck-lt dans le forum Agents de placement/Fenêtres
    Réponses: 23
    Dernier message: 04/08/2005, 11h07
  5. Réponses: 2
    Dernier message: 03/08/2005, 00h39

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