.BAT : Récupérer valeur de l'"UninstallString" du registre
Résolu
micromega
Messages postés
131
Date d'inscription
Statut
Membre
Dernière intervention
-
matmar08120 Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
matmar08120 Messages postés 140 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Uninstallstring
- Fichier bat - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Bouchou ka bat traduction ✓ - Forum traduction
- .Txt to .bat ✓ - Forum Logiciels
- Txt to bat ✓ - Forum Autoit / batch
12 réponses
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
montre ce que retourne
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString
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 questionC:> 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"
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
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)
C'est le genre de code qui semble fonctionner quand on le voit, mais lorsque je l'éxécute il ne se passe rien.
numéroter les lignes pour voir
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAMME" /v UninstallString | find /v /n ""
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]
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.
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,
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