Petit script VBS pour dézipper sous Win 7

marcocham Messages postés 13 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,

Pour ma sœur, j'ai voulu faire un petit Script sous VBS afin de procéder directement au dézippage automatique d'une application dont les mises à jour sont fréquentes car elle (ma sœur) est comme une poule devant un clavier d'ordinateur.

Elle sais juste télécharger la mise à jour et après c'est, pour elle, mission impossible.

Voici le script que j'ai réussi à pondre (car pour moi, c'est pas évident non plus) :

Donc rien de bien compliqué, pas de déclaration de variable, ni de procédure à faire.

Je l'ai appelé "truc.vbs". Sur mon ordinateur (Windows 10) il marche très bien sans rien ajouter d'autre et en faisant un double clic dessus.

Quand je l'ai installer sur le sien (windows 7), il ne fonctionne plus et me met une erreur ligne 1 caractère 1.

LeDepart = "D:\Downloads" 'Le dossier (téléchargement) qui reçoit le fichier téléchargé
LArrive = "C:\Captvty" 'Le dossier où doit s'éffectuer le dézippage

Set objFSO = CreateObject("Scripting.FileSystemObject") 'Le FSO
Set objFolder = objFSO.GetFolder(LeDepart) 'Le répertoire de travail
Set colFiles = objFolder.Files 'Les fichiers de travail

For Each objFile in colFiles 'Pour chaque fichier de l'ensemble des fichiers à scruter
    'Si on en trouve un qui contient les mots captvty et .zip
       if instr(objFile.Name,"captvty") <> 0 AND instr(objFile.Name,".zip") <> 0 then
        LeFichier = objFile.Name 'On copie son nom entier dans "LeFichier"
        Existe = 1 'On met un 1 dans "Existe" comme ça on saura qu'on l'as trouvé
            
        'Dézippe le fichier
        DossierZip =LeDepart & "\" & LeFichier 'Adresse complète du fichier a dézipper
        DossierDezip = LArrive 'Répertoire où le dézippage doit avoir lieu
            Set FSOWind = CreateObject("Shell.Application") 'FSO spécial windows
        'C'est l'opération de dézippage avec l'option "remplacer"
            FSOWind.Namespace(DossierDezip).CopyHere FSOWind.Namespace(DossierZip).Items, 16
            'Set osa = Nothing

        'Détruie le fichier zip
        objFSO.DeleteFile (LeDepart & "\" & LeFichier)
        exit for 'Sort de la boucle "Each for" car le fichier a été trouvé et travaillé
       end if
Next

'Informe l'utilisateur qu'aucun fichier "captvty" n'a été trouvé
if Existe <> 1 then msgbox "Il n'y a pas de fichier CapTVty dans le dossier de telechargement"


J'ai essayé en mettant "option explicite" et en déclarant les variables mais rien à faire.

Dois-je installer un truc sur son appareil ou bien ajouter des lignes de commandes (lesquelles ?), enfin, voilà pourquoi je cherche de l'aide.

Merci d'avance, Marc


Windows / Firefox 102.0

6 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour, quelle erreur?

    Cela donne quoi avec un script simple, genre

    msgbox "bonjour"
    0
  2. Utilisateur anonyme
     

    Bonjour 

    message corrigé par l'ajout de la coloration syntaxique, voir ici pour tes prochains messages 


    0
  3. marcocham Messages postés 13 Statut Membre
     

    Holala, je suis pas sérieux.

    Je m'excuse et te remercie Whismeri

    A yg_be

    msgbox "bonjour"

    Oui, ça cela fonctionne et l'erreur c'est :
    ligne 1 carac 1
    Caractère incorrect
    Code 800A0408
    Erreur de compilation Microsoft VBScript

    Pour rappelle : ceci avec Windows 7

    Merci pour votre (ton) 1er engagement - Marc

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      peut-être simplement un problème avec l'encodage des caractères dans le fichier?
      moi j'essaerais de retaper les caractères de la première ligne, voir ce que cela donne.

      0
  4. marcocham Messages postés 13 Statut Membre
     

    J'y ai bien pensé mais ce n'est pas ça, je pense plutôt à une configuration win 7 qui ne veut pas travailler avec VBS, il me faut peut-être installer un truc mais je ne trouve pas quoi. Cela doit être un truc que j'ai dû mettre sur mon Win 10 ou peut-être qui est installé implicitement.

    Étant donnée que j'habite très loin de chez elle (Moi Hanovre elle Angoulême), je voudrais la dépanner très vite car je ne suis que de passage.

    Une question. Ne peut on pas faire ça avec un fichier bath ? Mais le savoir et le temps me manque.

    On a un dossier de départ, le download et un dossier où il faut le déplacer et le dézipper avec l'option remplacer et puis  l'effacer.
    Il faut juste vérifier que le fichier dans le download contient les mots Captvty et .zip avant.

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Le fichier avec msgbox, c'est aussi du vbs.  Et cela fonctionne, si j'ai bien lu.

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     

    Bonjour,

    Voilà un script .bat qui correspond à ton besoin :

    @echo off
    setlocal enableextensions disabledelayedexpansion
    chcp 28591 >nul
    
    :: -------------------------------------------
    :: on définit les variables
    :: -------------------------------------------
    
    set "source=D:\Downloads"
    set "destination=C:\Captvty"
    
    :: -------------------------------------------------
    :: on ajoute 7-Zip à la variable %PATH%
    :: -------------------------------------------------
    
    echo %PATH% | findstr "7-Zip" || set "PATH=%ProgramFiles%\7-Zip;%PATH%"
    
    :: -------------------------------------------------
    :: on décompresse l'archive dans le dossier voulu
    :: -------------------------------------------------
    
    cd /d "%source%" || exit /b 1
    
    for /f "delims=" %%A in ('2^>nul dir /b /od captvty*.zip') do (
    	7z x -y -o"%destination%" "%%~fA"
    	del /f /s /q "%%~fA"
    )
    
    :: ---------------------------------------------------
    :: on quitte le script
    :: ---------------------------------------------------
    
    exit /b 0

    Avant de pouvoir utiliser le script, il faudra juste installer 7-zip disponible ici :

    https://www.7-zip.fr/


    0
  7. marcocham Messages postés 13 Statut Membre
     

    barnabe0057

    Bon ben je vais essayer ça après avoir installé 7-zip sur la machine de ma sœur.
    Une question mais c'est juste pour me coucher moins bête (t’inquiète il me restera encore du chemin à faire)
    Que signifie :

    chcp 28591 >nul
    

    Et surtout merci d'avance.

    0