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 :

Comment executer un .bat selon la version d'un fichier ?


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Comment executer un .bat selon la version d'un fichier ?
    Bonjour,

    Je dois deployer une application X, apres installation de cette aplication X,
    il faut executer un ie-rereg.cmd MAIS UNIQUEMENT si IE 6 est installé est SURTOUT PAS si IE 7 est installé.

    Je pensai faire un script qui recupere la version de iexplore.exe, si inferieur à 7 alors executer ie-rereg.cmd MAIS je n'ai pas fait de VB depuis longtemps et n'arrive pas a mettre au point mon script. et le temps de s'y remettre .... je l'ai pas avant le deploiement.

    Y aurait-il parmis vous quelqu'un qui aurait la gentillesse de m'aider svp ?

    Merci par avance de vos réponse.

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 078
    Points : 17 024
    Points
    17 024
    Par défaut
    Ceci fonctionne sous VISTA, ce qui laisse penser qu'il faudrait peut être aussi détecter la plate forme Windows.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    msgbox WshShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version Vector\IE") '8.0000
    Motif de l'édit:
    Sous XP s'est la même clef registre pour ce qui est de la recherche de la version IE.

    Pour la plate forme (éventuellement si tu en as besoin), même clef registre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox WshShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
    sous VISTA => Windows Vista (TM) Home Premium
    sous XP => Microsoft Windows XP
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonsoir,

    J'avais ceci quelque part dans mon fouillis :

    Est-ce ce que tu cherches ?
    Regarde car je ne peux même pas le faire moi-même sur ma machine (vbs interdit)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2\Applications\MicrosoftIE")
     
    Set colIESettings = objWMIService.ExecQuery("Select * from MicrosoftIE_Summary")
     
    For Each strIESetting In colIESettings
      Wscript.Echo "Version: " & strIESetting.Version
    Next
    EDIT :

    Bien sûr et si (je ne peux essayer, comme dit plus haut) cette méthode te convient, il te faudra "faire le lien" entre produit et version. Donc, utiliser également dans ta boucle :
    strIESetting.Name
    et/ou
    strIESetting.ProductID

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci ProgElecT et ucfoutu pour vos réponses rapides, c'est GENIAL !!!

    La valeur de la clé IE sous "Version Vector" est pas mal pour ce que j'ai à faire.

    Pour la vérif de l'OS c'est notre outils de déploiement qui s'en charge (Zenworks (pour l'instant)) et puis le parc n'est que sous XP à 99% et 2K

    J'arrive à faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim WS, IEVersion
    Set WS = WScript.CreateObject("WScript.Shell")
    IEVersion = WS.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version Vector\IE") 
    if IEVersion<"7.000" then
    
    Set objshell = Wscript.createobject("wscript.Shell")
    objshell.Run ".\ie-rereg.cmd"
    
    else 
    
    end if
    Pouvez vous me dire ce que vous en pensez svp ? des erreurs ? (surement)
    une autre alternative plus fiable ?

    Merci par avance ET ENCORE MERCI POUR VOS REPONSES A TOUS LES DEUX

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 078
    Points : 17 024
    Points
    17 024
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if IEVersion<"7.000" then
    '******** il est inutile de recréer l'objet  ********************
    'Set objshell = Wscript.createobject("wscript.Shell") '**********
    '****************************************************************
    objshell.Run ".\ie-rereg.cmd"
     
    else 
     
    end if
    Je n'utilise que trés peu VBS, la condition If je la verrai mieux ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Eval(IEVersion) < 7 then
    mais peut être que je prend trop de précaution, si un utilisateur experimenté passe par là, il nous en dira plus.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Re,

    Je rencontre un nouveau probleme.
    Mon script VB fonctionne bien, donc si on est en presence d'un IE 6 il execute bien mon ie-rereg.cmd.

    Si je double clic sur mon .vbs le ie-rereg.cmd se déroule bien.

    MAIS quand il est executé automatiquement par mon package à la fin de l'installation du soft (il s'agit d'un "single file installer" pour SAP GUI 7.10)
    j'ai un message d'erreur dans le fenetre d'invite du ie-rereg.cmd apres quelques lignes qui s'executent bien qui me dit "The batch File cannot be fount" DE QUEL BATCH FILE PARLE T IL ? PUISQU'IL SE LANCE ???
    Alors que si je remplace mon script VB par le ie-rerg.cmd dans mon package, là tout focntionne bien. DONC j'aurais tendence à ne pas remettre en cause le package "single file installer" mais plustot le script

    N'y aurait il pas une histoire de "dossier de travail" ou autre ?
    avec ce (objshell.Run ".\ie-rereg.cmd")

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Re,

    Je me suis débrouillé autrement. je lance mon script avant l'install. Si IE est < 7 il fait un copier / coller d'un vrai ie-rereg.cmd sinon il copie un vide. A la fin de l'install ie-rereg.cmd est exécuté, mais si IE >= 7 il ne se passe rien puisque le fichier exécuté est vide.
    Avec cette méthode le ie-rereg.cmd ne fait pas d'erreur et se déroule parfaitement.... Je ne sais toujours pas pourquoi l'execution depuis le .vbs genere une erreur une fois le ie-rereg.cmd demarré. Peut etre une notion de répertoire de travail "vérouillé" ou je ne sais quoi..... ???!!!???

    Merci pour votre aide qui m'a permis d'avancer plus vite.

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

Discussions similaires

  1. Comment verifier ma feuille selon version excel
    Par taurelle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/11/2013, 09h51
  2. [Système] Executer un .bat
    Par olive.m dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 14/02/2009, 12h59
  3. Réponses: 4
    Dernier message: 28/01/2009, 15h02
  4. Comment modifier l'icone selon la version du programme ?
    Par Ben_Le_Cool dans le forum Langage
    Réponses: 3
    Dernier message: 07/12/2005, 16h25
  5. [DEBUTANT]Comment executer un script sql
    Par peaceinpal dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2004, 08h44

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