.BAT : Récupérer valeur de l'"UninstallString" du registre
Résolu/Fermé
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
-
6 nov. 2014 à 19:05
matmar08120 Messages postés 139 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 19 janvier 2016 - 19 janv. 2016 à 12:05
matmar08120 Messages postés 139 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 19 janvier 2016 - 19 janv. 2016 à 12:05
A voir également:
- Uninstallstring
- Fichier bat - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Copy bat ✓ - Forum Programmation
- .Bat input - Forum Autoit / batch
- Msgbox bat ✓ - Forum Autoit / batch
12 réponses
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
7 nov. 2014 à 09:35
7 nov. 2014 à 09:35
ello
essayer avec ... tokens=1,2,3"... call "%%c")
essayer avec ... tokens=1,2,3"... call "%%c")
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
7 nov. 2014 à 22:00
7 nov. 2014 à 22:00
Re-bonjour Dubcek,
J'ai encore un nouveau problème. Merci d'être là.
Donc j'ai fait :
For /F "skip=2 tokens=1,2,3" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString') do (call %%c)
Et j'obtiens : '"C:\Program' > Il y a des guillemets en trop on dirait et en tout cas le chemin n'est pas complet. J'ai essayé en modifiant le chiffre de skip, mais j'obtiens rien de bon.
Merci
J'ai encore un nouveau problème. Merci d'être là.
Donc j'ai fait :
For /F "skip=2 tokens=1,2,3" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString') do (call %%c)
Et j'obtiens : '"C:\Program' > Il y a des guillemets en trop on dirait et en tout cas le chemin n'est pas complet. J'ai essayé en modifiant le chiffre de skip, mais j'obtiens rien de bon.
Merci
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
8 nov. 2014 à 09:44
8 nov. 2014 à 09:44
montre ce que retourne
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
9 nov. 2014 à 02:14
9 nov. 2014 à 02:14
Bonjour,
j'obtiens le bon uninstallstring avec le fichier à lancer :
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
UninstallString REG_SZ "C:\Program Files\Programme\uninstall.exe"
j'obtiens le bon uninstallstring avec le fichier à lancer :
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
UninstallString REG_SZ "C:\Program Files\Programme\uninstall.exe"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
9 nov. 2014 à 10:21
9 nov. 2014 à 10:21
C:> type f1.txt
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
UninstallString REG_SZ "C:\Program Files\Programme\uninstall.exe"
C:> For /F "skip=5 tokens=1-2,*" %a in ('type f1.txt') do @(echo %c)
"C:\Program Files\Programme\uninstall.exe"
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
10 nov. 2014 à 00:34
10 nov. 2014 à 00:34
Il m'indique que le fichier spéifier est introuvable (alors que la clef registre est bonne et que le dossier dans programfiles est bon également).
Par contre j'ai du mal à comprendre pourquoi avoir ajouter le chemin "C:\Program Files\Programme\uninstall.exe" alors que normalement c'est au registre de le donner en fonction du chemin contenu dans l'UninstallString.
Merci
Par contre j'ai du mal à comprendre pourquoi avoir ajouter le chemin "C:\Program Files\Programme\uninstall.exe" alors que normalement c'est au registre de le donner en fonction du chemin contenu dans l'UninstallString.
Merci
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
10 nov. 2014 à 11:16
10 nov. 2014 à 11:16
j'essaye dpuis un fichier, car reg query ne retourne pas a même chose
essayer
essayer
For /F "skip=5 tokens=1-2,*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString') do @(echo %%c)
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
10 nov. 2014 à 14:25
10 nov. 2014 à 14:25
C'est le genre de code qui semble fonctionner quand on le voit, mais lorsque je l'éxécute il ne se passe rien.
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
10 nov. 2014 à 14:39
10 nov. 2014 à 14:39
numéroter les lignes pour voir
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString | find /v /n ""
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
10 nov. 2014 à 23:18
10 nov. 2014 à 23:18
En ligne [5] j'obtiens bien le bon chemin :
[1]
[2]! REG.EXE VERSION 3.0
[3]
[4]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
[5] UninstallString REG_SZ "C:\Program Files\PROGRAMME\uninstall.exe"
[6]
[1]
[2]! REG.EXE VERSION 3.0
[3]
[4]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
[5] UninstallString REG_SZ "C:\Program Files\PROGRAMME\uninstall.exe"
[6]
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
Modifié par dubcek le 11/11/2014 à 08:40
Modifié par dubcek le 11/11/2014 à 08:40
donc je dirais skip=4 ?
micromega
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
1
12 nov. 2014 à 21:54
12 nov. 2014 à 21:54
Oui c'est bien ça. Avec Skip=4 cela fonctionne parfaitement.
Y a vraiment aucun code en bat qui te résiste.
Merci à toi, comme toujours.
Y a vraiment aucun code en bat qui te résiste.
Merci à toi, comme toujours.
matmar08120
Messages postés
139
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
19 janvier 2016
31
19 janv. 2016 à 09:45
19 janv. 2016 à 09:45
Bonjour à tous
Ne connaissant pas grand chose en script, voici mon besoin,
Je dois récupérer sur deux cents postes (différents), la clé de registre qui diffère selon les OS, les postes et les versions, l'antivirus Symantec.
Je dois au préalable récupérer sur chaque poste la clé de régistre permettant la désinstallation et l'écrire dans un fichier texte.
Via votre script, je récupère bien la clé de registre.
Mon problème, c'est que le chemin vers la clé de registre diffère selon les postes.
La variable de votre script nommé "PROGRAMME" diffère sur plusieurs postes.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
pour moi, le logiciel Symante est dans un dossier de ce type et ce dossier diffère sur plusieurs postes.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4FB8EE5D-FE34-40B5-9CE7-F3CF96EAA049}
j'aimerai donc via la valeur dans ce dossier "Display Name" ayant la valeur Symantec Endpoint Protection, trouvé le dossier.
Le script devra recherché dans les sous-dossiers de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall afin de trouver le DisplayName = Symantec Endpoint Protection et exporté la valeur de la clé
"UninstallString"
et écrire la valeur de cette clé dans un fichier texte > echo (cle_registre_desinstall.txt)
Auriez-vous une solution pour moi ?
Merci de votre aide.
Cordialement,
Ne connaissant pas grand chose en script, voici mon besoin,
Je dois récupérer sur deux cents postes (différents), la clé de registre qui diffère selon les OS, les postes et les versions, l'antivirus Symantec.
Je dois au préalable récupérer sur chaque poste la clé de régistre permettant la désinstallation et l'écrire dans un fichier texte.
Via votre script, je récupère bien la clé de registre.
Mon problème, c'est que le chemin vers la clé de registre diffère selon les postes.
La variable de votre script nommé "PROGRAMME" diffère sur plusieurs postes.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME
pour moi, le logiciel Symante est dans un dossier de ce type et ce dossier diffère sur plusieurs postes.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4FB8EE5D-FE34-40B5-9CE7-F3CF96EAA049}
j'aimerai donc via la valeur dans ce dossier "Display Name" ayant la valeur Symantec Endpoint Protection, trouvé le dossier.
Le script devra recherché dans les sous-dossiers de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall afin de trouver le DisplayName = Symantec Endpoint Protection et exporté la valeur de la clé
"UninstallString"
et écrire la valeur de cette clé dans un fichier texte > echo (cle_registre_desinstall.txt)
Auriez-vous une solution pour moi ?
Merci de votre aide.
Cordialement,
matmar08120
Messages postés
139
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
19 janvier 2016
31
19 janv. 2016 à 12:05
19 janv. 2016 à 12:05
Solution trouvée :
rem SOLUTION developpez.net : https://www.developpez.net/forums/d841976/general-developpement/programmation-systeme/windows/scripts-batch/recuperer-clef-base-registre/
set DDI="Symantec Endpoint Protection"
for /f %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query %%a /v DisplayName | find %DDI% > nul && for /F "tokens=4,*" %%c in ('reg query %%a /v UninstallString') do set result=%%c
echo %result% >> c:\maclederesitre.txt
rem SOLUTION developpez.net : https://www.developpez.net/forums/d841976/general-developpement/programmation-systeme/windows/scripts-batch/recuperer-clef-base-registre/
set DDI="Symantec Endpoint Protection"
for /f %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query %%a /v DisplayName | find %DDI% > nul && for /F "tokens=4,*" %%c in ('reg query %%a /v UninstallString') do set result=%%c
echo %result% >> c:\maclederesitre.txt