Dans un Batch Dos, plus de 10 choix - Comment faire?

bonjour

Je propose plusieurs choix dans un Batch Dos, 12 choix exactement.

Problème: quand je sélectionne un choix 10, 11 ou 12, il sort le résultat du choix 1.

Tout se passe comme si le batch sélectionnait seulement le premier caractère saisi.

Merci par avance de votre aide; mon code est joint.

F

set choice=
set /p choice=Le chiffre correspondant a la lettre du support (1/E, 2/F, 3/G, 4/H, 5/I, 6/J, 7/K, 8/L, 9/M, 10/N, 11/O, 12/P) + Enter?
if not ‘%choice%’==’’ set choice=%choice:~0,1%
if ‘%choice%’==‘12’ SET DRIVE=P
if ‘%choice%’==‘11’ SET DRIVE=O
if ‘%choice%’==‘10’ SET DRIVE=N
if ‘%choice%’==‘9’ SET DRIVE=M
if ‘%choice%’==‘8’ SET DRIVE=L
if ‘%choice%’==‘7’ SET DRIVE=K
if ‘%choice%’==‘6’ SET DRIVE=J
if ‘%choice%’==‘5’ SET DRIVE=I
if ‘%choice%’==‘4’ SET DRIVE=H
if ‘%choice%’==‘3’ SET DRIVE=G
if ‘%choice%’==‘2’ SET DRIVE=F
if ‘%choice%’==‘1’ SET DRIVE=E
… etc …

Tu n’as qu’a attendre une lettre plutôt qu’un chiffre … :neutre:

choice n’attends qu’un unique caractère ! :smiley:

Il me semble que c’est plutot un probleme de condition sur des carcteres alphanumeriques.
exemple avec %choice% = 12

hypothese :IF %choice% == 1 est different de IF ‘%choice%’ == ‘1’

on commence et on trouve IF ‘%choice%’ == ‘12’ SET %DRIVE%==P ensuite on arrive a la ligne IF ‘%choice%’ == ‘1’
Je dirais que la condition a respectée == ‘1’ fait un cadré gauche sur la variable %choice%
et comme tu ne sors pas de ta structure (case) la variable DRIVE prend d’abord la valeur P et ensuite E.
Ajoute un GOTO :SUITE en fin de conditionnelle si la condition est respectée
et place l’etiquette :SUITE en fin de structure.

J’ai été clair ??? :slight_smile:

Salut, j’ai u le même problème et j’ai juste mis “if not ‘%choice%’==’’ set choice=%choice:~0,10%” au lieu de “if not ‘%choice%’==’’ set choice=%choice:~0,1%” et ça roule :lol: .
Voilà, ne m’en demande pas plus je débute. :hello: