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

Scripts/Batch Discussion :

Vérifier si un prorgramme est bien installé


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut Vérifier si un prorgramme est bien installé
    Bonjour à tous,

    J'ai implémenté un code batch permettant d'installer en mode silencieux des programmes comme JRE, Tomcat...

    Ma question est la suivante: Est-il possible de vérifier avec des scripts batchs si ces programmes sont déjà installé ou non ? Et éventuellement, pour chaque programme installé, si la version installé est plus récente que la version qu'on veut l'installé ou non ?

    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Oui c'est largement possible avec des if exist %Chemin_vers_un_fichier% et des recherches dans le registre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Citation Envoyé par devilsnake88 Voir le message
    Bonjour,
    Oui c'est largement possible avec des if exist %Chemin_vers_un_fichier% et des recherches dans le registre.
    Je vous remercie infiniment pour votre réponse rapide. Cependant, j'ai oublié de mentionner que le code doit être opérationnel sur plusieurs machines et du coup on sait pas en avance le disque sur lequel le programme est installé (C:/, D:/...) et même l'emplacement du programme installé (sous program files ou autre)...Merci encore une fois

  4. #4
    Invité
    Invité(e)
    Par défaut
    Très souvent il te suffit de rechercher le nom du logiciel dans le registre pour y trouver une clé qui a comme valeur l'emplacement du logiciel et (peut être une autre clé) avec la version installée du logiciel.
    Fait tes recherches, extrait les données utiles et fait tes conditions et tests désirés dans ton BATCH.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Pourriez vous m'expliquer encore plus comment je peux faire des recherches dans les registres s'il vous plaît ?

    C'est la prémière fois que je développe en batch et du coup je suis encore novice... Merci d'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    NON!
    Tu t'es cru sur un forum d'entraide de développem...
    Ah oui effectivement...
    Dans ce cas, jette un oeil par ici:
    -> http://www.developpez.net/forums/d15...-d-aide-batch/
    -> http://www.developpez.net/forums/d15...stre-modifier/
    -> http://www.developpez.net/forums/d15...cles-registre/
    Bref, la base quand tu recherches un truc sur un site c'est:
    Google -> "site:developpez.net "Le truc que tu cherches""

    N'hésite pas si tu as besoin mais essaye de proposer un code avant de demander de l'aide.
    Fait également attention à ne rien supprimer...

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Merci pour votre réponse ainsi que vos conseils.

    J'ai déjà trouvé les codes ci-dessous pour identifier si java est installé ou non et éventuellement identifier le chemin du dossier d'installation..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    set KEY_NAME="HKEY_CLASSES_ROOT\jarfile\shell\open\command"
    ::get javaw.exe from the latest properly installed jre
    for /f tokens^=2^ delims^=^" %%i in ('reg query %KEY_NAME% /ve') do set JAVAW_PATH=%%i
    
    ::if reg entry is not found, java is not installed
    if "%JAVAW_PATH%"=="" goto YOUR_ERROR
    
    ::then strip "\javaw.exe" from the JAVAW_PATH obtained above
    set JAVA_HOME=%JAVA_HOME:\javaw.exe=%
    
    echo %JAVA_HOME%
    pause
    J'ai exécuté ce code sur ma machine et j'ai trouvé deux soucis:

    1) Quant je désinstalle Java de ma machine, ce code ne tourne plus et il m'affiche rien !
    2) Quand j'installe JRE, il m'affiche comme dossier d'installation du Java un dossier du genre : C:/Program Files (x86)/Java/JDK.... Mais quand je vérifie sur ma machine je ne trouve pas déjà le dossier "Java" sous "Program Files"..

    Pourriez-vous me donner vos consignes pour corriger ce bout de code s'il vous plaît ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je t'ai corrigé le script, refait tes tests avec ceci:

    Code bat : 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
    @echo off&cls
    setlocal EnableDelayedExpansion
     
    set KEY_NAME="HKEY_CLASSES_ROOT\jarfile\shell\open\command"
    ::get javaw.exe from the latest properly installed jre
    for /f tokens^=2^ delims^=^" %%i in ('reg query %KEY_NAME% /ve') do set JAVAW_PATH=%%i
     
    ::if reg entry is not found, java is not installed
    if "!JAVAW_PATH!"=="" (
        echo JAVA NOT FOUND IN REGEDIT
    ) else (
        echo JAVA FOUND IN REGEDIT
     
        ::then strip "\javaw.exe" from the JAVAW_PATH obtained above
        set JAVA_HOMES=!JAVAW_PATH:\javaw.exe=!
     
        if exist "!JAVA_HOMES!" (
            echo JAVA INSTALLED: !JAVA_HOMES!
        ) else (
            echo JAVA INSTALL DIRECTORY NOT FOUND
        )
    )
     
    pause
    exit

    Après ce n'est qu'un bout de code qui détecte si JAVA est installé ou non

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    ça marche, je vous remercie énormément !!

    Par contre, j'ai une autre question à vous posez si vous permettez.

    J'ai essayé de changer la variable KEY_NAME pour vérifier la même chose à d'autres logiciels comme "Apache Tomcat", "Mysql" et "MySQL Workbench" mais toujours sans résultat.

    Comment trouver le bon variable dans la base de registre pour chaque logiciel installé, qui est dans Java :'HKEY_CLASSES_ROOT\jarfile\shell\open\command' ?


    Merci d'avance et très bonne journée !

  10. #10
    Invité
    Invité(e)
    Par défaut
    Là c'est à toi de rechercher dans le regedit:

    Touche windows+R > regedit > F3 > recherche le nom du logiciel voulu par exemple.

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Mais cette solution dépend d'une machine à une autre, non ? Il n'ya pas une variable générique, pour chaque programme, ou on peut déduire si le programme en question est installé ou non ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Un programme qui s'installe sur une machine doit s'installer de la même manière sur une autre donc le registre doit contenir les mêmes clés sur les deux machines.

    Après rien ne t'empêche de rechercher sur Internet une façon de lister tous les logiciels installés.

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Liste la liste des logiciels installés n'est pas très difficile à l'avoir
    J'ai trouvé déjà ce code qui permet de les avoir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    echo ================= >>software_list.txt
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp1.txt
    find "DisplayName" temp1.txt| find /V "ParentDisplayName" > temp2.txt
    for /f "tokens=2,3 delims==" %%a in (temp2.txt) do (echo %%a >> software_list.txt)
    del temp1.txt
    del temp2.txt
    REM type software_list.txt | more
    echo.
    echo.
    echo Installed software are stored in software_list.txt
    Cependant, trouver le variable permettant de trancher si un logiciel est installé ou non et éventuellement identifier le dossier d'installation ne semble une simple tâche à faire

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/04/2009, 20h13
  2. Vérifier qu'une partition est bien montée
    Par Olivier Regnier dans le forum Linux
    Réponses: 6
    Dernier message: 30/03/2008, 01h29
  3. Réponses: 1
    Dernier message: 08/08/2007, 19h07
  4. [Zlib] Dll injoignable alors qu'elle est bien installée
    Par Jamming Ed dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 07/11/2005, 16h45

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