-
BATCH > saisie ou pression sur une touche du clavier
CHOICE
Permet la saisie d’un caractère issu d’une liste en retournant l’index de l’élément choisi par le ERRORLEVEL.
Si l’utilisateur presse une touche non renseignée, un bip d’erreur se fait entendre.
Exemple :
choice /C abcSi l’utilisateur presse la touche
aoubouc, renvoie le code 1 pour a, 2 pour b et 3 pour c.Par défaut, affiche YN (yes ou no)
choice /NMasque les choix dans le promptchoice /CSouchoice /SPermet la différenciation entre minuscule et majusculechoice /M texteAffiche le texte avant le promptChoix par défaut
choice /C abc /D b /T 9choice /C abc /T:b,9
/T duréeou/T:défaut,duréeNombre de secondes ( 0 à 9999 ) avant un choix par défaut
/D défautcaractère par défautERRORLEVEL
Par défaut, ERRORLEVEL envoie 1 pour Y, et 2 pour N.
Si une erreur est détectée, ERRORLEVEL renvoie 255.
Si l’utilisateur appuie sur [CTRL]+[BREAK] ou [CTRL]+[C], ERRORLEVEL renvoie 0.
Les ERRORLEVEL doivent être listés par ordre croissant :
CHOICE /C ABC /N /M "Choisissez A, B ou C"IF ERRORLEVEL 1 SET CHOIX=A
IF ERRORLEVEL 2 SET CHOIX=B
IF ERRORLEVEL 3 SET CHOIX=CECHO vous avez choisi %CHOIX%DÉPLACEMENT DU CURSEUR
@setlocal enableextensions enabledelayedexpansion @echo off title movement color 0a
set length= set height= a
:controls cls echo Use WASD to move your character ([]). echo. for %%a in ( %height% ) do echo. echo %length%[] choice /c wasd /n if %errorlevel% equ 1 call:up if %errorlevel% equ 2 call:left if %errorlevel% equ 3 call:down if %errorlevel% equ 4 call:right
:left set length=!length:~0,-1! goto controls
:right set length=%length% goto controls
:up set height=!height:~0,-2! goto controls
:down set height=%height% a goto control