Petit script VBS pour dézipper sous Win 7

marcocham Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 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

A voir également:

6 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour, quelle erreur?

Cela donne quoi avec un script simple, genre

msgbox "bonjour"
0
Utilisateur anonyme
 

Bonjour 

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


0
marcocham Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

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
marcocham Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

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

0

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

Posez votre question
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

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
marcocham Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 

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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

C'est pour définir l'encodage de caractères dans la console :

http://gillot55.free.fr/Articles/2015-03-12_Les_pages_de_codes_(ASCII_Unicode_UTF-8_etc).pdf

-

chcp 850 => DOS Latin 1

chcp 1252 => Windows-1252 (West European Latin)

chcp 28591 => ISO-8859-1

chcp 65001 => UTF-8

0