[Résolu]Problème récupération variable avec FOR /F
Posté : 18 oct. 2012 14:48
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:
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à!
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
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à!