Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]"Set /P" Problème détection choix multiple
Auteur Message
Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
Bonjour/Bonsoir,

Voilà, dans mon code j'ai ceci.
Code:
   REG QUERY HKEY_CURRENT_USER\Software\[RiJyk94]BatchScripts\SPRE-BlackProject
   Cls
   If Not ERRORLEVEL 1 (
      :A0-FR
      Echo Une installation … d‚j… ‚t‚ ‚ffectu‚.
      Echo Si vous recommencez l'installation, vos paramŠtresvont ˆtre reconfigur‚.
      Echo.
      Echo  [1] Continuer           [2] Quitter
      Echo.
      Set /P new=
      If "%new%"=="1" Goto :FR_ADVISE
      If "%new%"=="2" Exit
      Goto :A0-FR
   )

Ce qui m'embête c'est que je dois faire deux fois, un après l'autre, le choix pour que le programme répond.
Je ne crois pas que le problème viens du fait que ce "If" est situé dans un "If"

Code:
   REG QUERY HKEY_CURRENT_USER\Software\[RiJyk94]BatchScripts\SPRE-BlackProject
   Cls
   If Not ERRORLEVEL 1 (
      :A0-FR
      Echo Une installation … d‚j… ‚t‚ ‚ffectu‚.
      Echo Si vous recommencez l'installation, vos paramŠtresvont ˆtre reconfigur‚.
      Echo.
      Echo  [1] Continuer           [2] Quitter
      Echo.
      Set /P new=
      If "%new%"=="1" Goto :FR_ADVISE
      If "%new%"=="2" Exit
      Goto :A0-FR
   )
   :FR_ADVISE
   Title AVERTISSEMENT
   Color F0
   Mode 67,11
   Cls
   Echo.
   Echo  Attention, ce programme n‚cessite une interaction avec votre base de registre.
   Echo.
   Echo  Les modifications apport‚s par ce programme n'affecteront pas le  bon fonctionnement de votre utilisation avec cette ordinateur.
   Echo.
   Echo  [1] Continuer           [2] Quitter
   Echo.
   Set /P Term=
   If "%Term%"=="1" Goto :LECTEUR
   If "%Term%"=="2" Exit
   Goto :FR_ADVISE

Dans ce dernier bout de code, j'ai remarquer le même problème mais de façon flagrante. Comme on le voit, si il existe une certainnes clef dans la base de registre, le scripts va directement à ":FR_ADVISE" et la mon problème entre en jeux.
Mais si la clef en question n'est pas trouvé, il va directe à l'étiquette ":A0-FR" et la aussi mon problème est la. Par contre quand cette condition est terminé, je vais à ":FR_ADVISE" et le problème à disparue, j'ai juste besoin de faire une fois mon choix.

Ce sont mes boucles qui sont mal écrit?



Dernière édition par Koalatic le Jeu 28 Fév 2013 - 05:26; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
Bonjour
je ne vois pas de boucle de ton code

A tester
Code:
REG QUERY HKEY_CURRENT_USER\Software\[RiJyk94]BatchScripts\SPRE-BlackProject
   Cls
   If Not ERRORLEVEL 1 GOTO A0-FR

 :A0-FR
      Echo Une installation … d‚j… ‚t‚ ‚ffectu‚.
      Echo Si vous recommencez l'installation, vos paramŠtresvont ˆtre reconfigur‚.
      Echo.
      Echo  [1] Continuer           [2] Quitter
      Echo.
      Set /P new=
      If %new%==1 Goto FR_ADVISE
      If %new%==2 Goto Quit
IF not defined %new% GOTO A0-FR


   :FR_ADVISE
   Title AVERTISSEMENT
   Color F0
   Mode 67,11
   Cls
   Echo.
   Echo  Attention, ce programme n‚cessite une interaction avec votre base de registre.
   Echo.
   Echo  Les modifications apport‚s par ce programme n'affecteront pas le  bon fonctionnement de votre utilisation avec cette ordinateur.
   Echo.
   Echo  [1] Continuer           [2] Quitter
   Echo.
   Set /P Term=
   If %Term%==1 Goto :LECTEUR
   If %Term%==2 GOTO Quit
IF not defined %Term% GOTO FR_ADVISE

:Quit
Exit
   




Dernière édition par Laddy le Sam 23 Fév 2013 - 19:57; édité 2 fois

______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
Bonjour Smile

Hum, j'ai réussi à obtenir le résultat que tu souhaites :
Code:
@echo off
setlocal enabledelayedexpansion

REG QUERY HKEY_CURRENT_USER\Software\[RiJyk94]BatchScripts\SPRE-BlackProject
Cls
If Not ERRORLEVEL 1 (
  :A0-FR
  Echo Une installation … d‚j… ‚t‚ ‚ffectu‚.
  Echo Si vous recommencez l'installation, vos paramŠtresvont ˆtre reconfigur‚.
  Echo.
  Echo  [1] Continuer           [2] Quitter
  Echo.
  Set /P new=
  If !new!==1 Goto :FR_ADVISE
  If !new!==2 Exit
  Goto :A0-FR
)
:FR_ADVISE
Title AVERTISSEMENT
Color F0
Mode 67,11
Echo.
Echo  Attention, ce programme n‚cessite une interaction avec votre base de registre.
Echo.
Echo  Les modifications apport‚s par ce programme n'affecteront pas le  bon fonctionnement de votre utilisation avec cette ordinateur.
Echo.
Echo  [1] Continuer           [2] Quitter
Echo.
Set /P Term=
If "%Term%"=="1" Goto :LECTEUR
If "%Term%"=="2" Exit
Goto :FR_ADVISE

Ce que j'ai fait :
setlocal EnableDelayedExpansion
Et j'ai mis !new!==1, sans les guillemets, et avec des points d'exclamations.

En espérant t'avoir aidé,
ytrezAn




______________________________________________________
Skype
Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
Alors, je vous dit merci de la rapidité de votre aide Okay Mr. Green

Deuxièmement, sa m'embête de pas savoir à quoi sert les point d'exclamation à la place des pourcent.
Ensuite, c'est quoi "setlocal EnableDelayedExpansion " ?

Je vais tester vos solutions, merci



Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
Le setlocal EnableDelayedExpansion, ça permet d'activer l'expansion retardée des variables.
Euh, pour moi non plus, formuler comme ça, ce n'est pas du tout clair rassures-toi.

Alors, en bref, à ce que j'ai compris et que j'applique, quand tu veux utiliser une variable, ça va souvent la considérer comme une valeur et non pas comme une chaîne. En utilisant l'expansion retardée, les variables écrites "!var!" au lieu de "%var%" seront considérées comme des chaînes.
Enfin, c'est ce que j'ai compris en tout cas. Je te donne quand même quelques liens, même si pas bien expliqués ce sera mieux que rien.
[hide=Voir les liens]http://ss64.com/nt/setlocal.html [en]
http://rider.keuf.net/t151-cours-n12-la-commande-setlocal[/hyde]

Donc ce qui s'est passé dans le code, c'est que la valeur est comptée comme "?" la première fois et "1" la deuxième fois (je sais pas pourquoi). Donc j'ai mis la chaîne, comme ça on est certain que c'est bon de ce côté là. Et ça a marché.

Cordialement,
ytrezAn




______________________________________________________
Skype
Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
D'accord, merci de ton information.
Également pour ta solution dans mon problème Okay
Celle de Lady a pas fonctionner Rolling Eyes



Répondre en citant
Message [Résolu]"Set /P" Problème détection choix multiple 
De rien Wink
Celui de Laddy n'a pas marché justement pour l'expansion retardée je pense... A voir.

Cordialement,
ytrezAn




______________________________________________________
Skype
Message [Résolu]"Set /P" Problème détection choix multiple 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch