Bach : si existe clef registre faire :

Albert49 -  
dubcek Messages postés 18627 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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    reg query clé_registre > NUL
    if %errorlevel% EQU 0 (
    echo clé ok
    ) else (
    echo clé not ok
    )
    0
  2. 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
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    qu'est ce qui ne fonctionne pas ?
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  7. 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
    1. 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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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