[Résolu]Problème récupération variable avec FOR /F

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
Moustash
Batcheur occasionnel
Messages : 2
Enregistré le : 18 oct. 2012 14:32

[Résolu]Problème récupération variable avec FOR /F

Message par Moustash »

Bonjour tout le monde!

Je viens voir voir car je bloque sur un gros point concernant une programmation en batch. j'ai regarder toutes les pages de votre forum afin de trouver réponse à mon problème, mais je n'ai rien trouvé qui marche...

Donc j'explique mon cas, je souhaite faire un batch, qui à pour but de lancer une désinstallation d'un soft (bien sur cette partie là ne me pose aucun problème) mais pour cela, j'ai besoin de checker dans la base de registre une certaine clés du nom de "UninstallString" (et faut que je récupère un certain morceau de cette clés) que je doit mettre dans une variable pour enfin y effectuer quelque commande du style If.... afin de savoir si c'est du 32 ou 64 bit et lancé tel ou tel commande en fonction de tous sa.

voila mon code:

Code : Tout sélectionner

@echo off
set Commande=REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Dassault Systemes B19_1" /v UninstallString
FOR /F "tokens=2 delims=\" %%a IN ('%Commande%') DO set test=%%a

pause

echo %test%

pause

if %TEST%== "Program Files (x86)" (echo oui) else (echo non)

pause
 
j'ai mis des pause afin de vérifier chaque étape de mon script. Pour le moment, j'arrive à extraire l'information que je souhaite de ma clés de registre. quand je fait un echo %TEST% sa m'affiche bien ce que je souhaite, mais que j'utilise la commande If sa me ferme directement la fenêtre....
je ne pense pas que ma commande if soit mal écrite, car en changeant de variable (%azerty% au hasard) sa m'affiche bien "non" dans la console (comme l'indique la commande si la variable n'est pas égal à "Program Files (x86)".


Alors, j'aurais très bien pu faire faire en sorte de détecter l'OS d'une autre manière etc... mais le souci, c'est que ce logiciel en question est installable en version 32bit et en 64bit sur une machine 64bit (on se retrouve avec 2 installe du même soft sur la machine). et pour couronné le tout, les clés dans la base de registre sont "pratiquement les même", la seul chose qui change sont le "Dassault Systemes B19_1" où le "1" varie entre 0 et 1 (0 pour le 1er installer et 1 pour le second, et comme on peut les installer dans n'importe quel ordre...)


Enfin bon, voila mon souci, il m'est impossible d'utiliser la variable %TEST% ailleurs que la commande echo ....
je tenter bon nombre de chose, mais le je coince, c'est pour cela que je demande de l'aide!


Si vous avez besoin de plus d'informations je suis là!
Modifié en dernier par Moustash le 18 oct. 2012 16:11, modifié 1 fois.
Cidced
Batcheur occasionnel
Messages : 3
Enregistré le : 18 oct. 2012 15:38

Re: Problème récupération variable avec FOR /F

Message par Cidced »

Salut,

Essai de mettre des guillement autour de %TEST% :
if "%TEST%"== "Program Files (x86)" (echo oui) else (echo non)

je pense que le if plante parce que cela donne :
if Progral Files ...

Tiens moi au courant si c'est ça et bon courage
Moustash
Batcheur occasionnel
Messages : 2
Enregistré le : 18 oct. 2012 14:32

Re: Problème récupération variable avec FOR /F

Message par Moustash »

Oh oui Merci!!!! ça marche!!! je n'avais absolument pas penser à sa, et je n'y aurais pas penser je crois!

Sa marche nickel, je vais modifier le titre de mon post pour mettre en résolu.
Merci pour ta réponse rapide!
Cidced
Batcheur occasionnel
Messages : 3
Enregistré le : 18 oct. 2012 15:38

Re: [Résolu]Problème récupération variable avec FOR /F

Message par Cidced »

De rien et bon courage :)
Répondre