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 :

Récupérer chemin d'installation [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut Récupérer chemin d'installation
    Bonjour à tous,

    Je viens demander votre aide pour un petit script que je développe.
    Une des parties du programme est de lister les versions d'un certain logiciel installé sur différent PC.

    Dans le registre, je peux voir les différentes versions, comme montré sur l'image ci-dessous.

    Nom : 2015-02-24_12h20_55.png
Affichages : 395
Taille : 7,6 Ko

    Je cherche à récupérer le chemin de l'installation pour chaque version, si possible dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    v1 = D:\PTC\PRO WF5
    v2 = D:\PTC\PRO WF3
    v3 = D:\PTC\PRO WF4
    J'ai donc tenté dans un premier temps de récupérer cette liste via un Batch et ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For /F "tokens=*" %%u in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\PTC ^| findstr .0') do (
    echo Version pro-e : %%u
    rem echo pour voir ce qui se passe
    set version=%%u	
    )
    Mais je n'arrive pas au résultat souhaité, même afficher le chemin complet me pose problème, ça m'affiche :
    Nom : 2015-02-24_12h23_29.png
Affichages : 479
Taille : 8,1 Ko
    Et impossible de m'en sortir après ...

    Pouvez-vous m'aiguillez un peu svp, je ne maitrise pas la boucle For et le système des tokens.
    Merci par avance pour votre aide

  2. #2
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Bonjour,
    Regarde ceci (au niveau des tokens):

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off&cls
    for /f "tokens=3" %%R in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PTC" /v vconf_5.0_2010480') do (
        set "version=%%R"
    )
    echo %version%
    pause

    En gros:
    - tokens=1 -> vconf_5.0_2010480
    - tokens=2 -> REG_SZ
    - tokens=3 -> D:\PTC\PRO WF5\...

    Le soucis qui se pose pour moi (mais qui peut être réglé en Batch aussi) c'est que tu n'as pas une clé du style: "Logiciel REG_SZ version-5.0"
    Ça serait plus facile pour moi si il y avait une autre clé de registre avec un nom générique qui te donne la version toujours dans le même format.

    Personnellement j'utilise cette méthode pour récupérer le chemin d'installation de Steam.
    Dit moi si cette clé te sorti bien ce que tu désires et n'hésite pas à télécharger un logiciel gratuit pour parcourir ton registre comme 'Reg*strar Reg*stry Manager' (censure par moi, pas de pub xD).

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut
    Merci de m'aider.

    En utilisant ton code, j'obtiens ceci : D:\PTC\PRO
    Il manque une partie de chemin, du à l'espace dans le nom de dossier ...

    Concernant la clé : non je n'ai pas le choix; c'est celle crée par le logiciel lui même, je dois me débrouiller avec ça.
    Sinon ces clés contiennent bien la version et le chemin correspondant : ce qui m’intéresse au final.

    J'édite mon message : si on oublie le fait de vouloir récupérer plusieurs clés au même endroit, le but serait d'en sélectionner une (avec une petite condition comme clé qui contient "5.0" ou "3.0") et d'avoir en sortie la chemin complet (même si il y des espaces dans le chemin). Je continue de tester de mon coté ...

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut
    J'ai retravaillé mon programme et j'ai trouvé une solution qui me convient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=3-7" %%a in ('reg query "%myKey%" ^| find /i "%versionProE%"') do set chemin_complet=%%a %%b %%c %%d
    Mais je bloque sur le point suivant :
    Comment passer de "D:\PTC\PRO WF3\apps\ptcvconf\text\ptcvconf.ptc" à "D:\PTC\PRO WF3\" ?

    Peut-on couper une chaine en Bat à partir d'une autre, ici à partir de 'apps' dire de garder que la partie de gauche ?

    Merci.

  5. #5
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Sans tester je dirais de tenter un echo %%a %%b voir si ça te retourne bien ce que tu veux.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut
    Humm c'est plus complexe que ça , mais c'est ma faute j'ai oublié de préciser que le chemin peut-être différent suivant la machine où est lancé le programme :

    Par exemple :

    De "D:\PTC\PRO WF3\apps\ptcvconf\text\ptcvconf.ptc" je cherche à obtenir "D:\PTC\PRO WF3\"
    De "D:\PTC\PROE_WF4\apps\ptcvconf\text\tata.ptc" je cherche à obtenir "D:\PTC\PROE_WF4\"
    De "D:\PTC\PRO-WF5\apps\ptcvconf\text\toto.ptc" je cherche à obtenir "D:\PTC\PRO-WF5\"

    Je ne sais pas si c'est possible ...

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

Discussions similaires

  1. Récupérer chemin fichier -- FileReference
    Par ok07 dans le forum Flash
    Réponses: 3
    Dernier message: 21/02/2007, 14h45
  2. Récupérer chemin répertoire
    Par Rodrick dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/10/2006, 10h00
  3. [VB6] Récupérer chemin dans server FTP et naviguer
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/07/2006, 23h03
  4. [VBA-E]Récupérer chemin du fichier de données d'un graphique
    Par pimouss76 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/03/2006, 14h41
  5. Réponses: 2
    Dernier message: 02/02/2006, 15h00

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