Conditions dans un Batch .bat

Salut tout le monde.
bah voila je suis entrain de creer un batch qui m’effectuera certaines actions suivant la valeur entré.
Je vous mets le bout de code afin que vous voyez mieux:


set /p choix=Que voulez vous faire?

if /I "%choix%"=="1" (goto :A)
if /I "%choix%"=="2" (goto :B)
if /I "%choix%"=="3" (goto :C)

alors tout fonctionne bien quand je tape la valeur 1 - 2 ou 3 ca m’envoie au bons endroits.
Le truc c’est que j’aimerai controler l’entrée des valeurs saisies et donc de faire boucler la question si la valeur entré n’est pas 1 - 2 ou 3. parce que pour l’instant si je mets une autre valeur ca me rentre dans les premier 'goto’

J’ai essaye de le faire avec un

 if /I ("%choix%"=="1" | "%choix%"==2 | "%choix%=="3") (goto :erreur) 

mais ca me plante le programme. En effet avec n’importe quel valeur entré ca me ferme la fenêtre.
Savez vous quelle condition entrée??

Merci d’avance,

Edit: Je voudrai garder la fonction set /p et non partir sur la fonction Choice qui n’est pas disponible sur XP ou 2000
Edité le 02/11/2007 à 12:58

Tu as essayé :

:question
set /p choix=Que voulez vous faire ? 

if /I "%choix%"=="1" (goto :A) 
if /I "%choix%"=="2" (goto :B) 
if /I "%choix%"=="3" (goto :C)
goto question

:A
....
etc.

bah merci ça fonctionne bien maintenant.
J’avais pas pensé à cette solution là, d’envoyer avec un goto si on rentrait pas dans les conditions.

Merci encore :smiley: