Bach : si existe clef registre faire :

Albert49 -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

je cherche la bonne syntaxe pour rechercher si une clef registre est présente et faire une action.
Si elle n'est pas présente ne pas faire l'action.

J'ai essayé

If exist "Clef registre" "Action à faire"

mais ça ne marche pas

6 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
reg query clé_registre > NUL
if %errorlevel% EQU 0 (
echo clé ok
) else (
echo clé not ok
)
0
Albert49
 
Hello,

J'ai essayé, mais cela ne semble pas fonctionner. Voilà ce que j'ai fait.

reg query "clé_registre" > NUL
if %errorlevel% EQU 0 (
call "chemin fichier à exécuter"
) else (
gotoend
)

:end
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
qu'est ce qui ne fonctionne pas ?
0
Albert49
 
Il ne semble pas tenir compte si la clef registre est présente ou non pour faire l'action.

Si je fais ce code, il fait l'action même si le code n'existe pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer reg quey clé en interactif voir ce qu'il retourne
exemple:
C:> REG Query "HKLM\SYSTEM\MountedDevices" > NUL
C:> echo %errorlevel%
0
C:> REG Query bidon > NUL
Erreur : nom de clé non valide
C:> echo %errorlevel%
1
C:>
0
Albert49
 
Bonjour,

En faite le code ne tient pas compte de l'action à faire en fonction si la clef registre existe ou non.

Il fait les opérations une à une.

J'ai tenté :

reg query "CLEF REGISTRE"
if %errorlevel% EQU 1 (
goto FinBoucle
) else (
Call Programme.exe
goto :eof
)

:FinBoucle


La clef registre existe bien. Et cela fonctionne, mais si la clef registre n'est pas présente je reçois un message d'erreur comme quoi le programme n'a pas été trouvé (ce qui est normal, car si la clef registre 'existe pas le programme n'est pas présent). Je souhaiterais donc ne plus avoir ce message.
Merci
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
si la clé n'existe pas errorlevel vaut 1 donc doit exécuter le goto
que donne ca ? : https://forums.commentcamarche.net/forum/affich-29749088-bach-si-existe-clef-registre-faire#5
essayer
reg query "CLEF REGISTRE" > NUL 2>&1
if %errorlevel% NEQ 0 (
goto FinBoucle
) else (
Call Programme.exe
goto :eof
)
0
Albert49
 
Bonjour,

cela ne fonctionne pas, il fait les opérations une à une. Malgré le registre si la clef de registre n'existe pas il tente de lancé le programme...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
montre l'exécution de ces commandes
reg query "cle qui existe" > NUL 2>&1
echo %errorlevel%
reg query "clé qui n'existre pas" > NUL 2>&1
echo %errorlevel%
0