Salut,

La commande "PAUSE" permet de faire une <<PAUSE >> qui sera annulé par la pression de n'importe quelle touche, malheurseusement cette commande ne renvoie pas d'ERRORLEVEL


La commande "SET/P PAUSE=" permet aussi de faire une <<PAUSE>> qui ne sera annulé que lorsqu'on appuye sur la touche <<ENTER>> et va renvoyer un "0" si on saisi une chaine de caractères (ou un espace), sinon c'est "1" On pourra alors
tester si l'utilisateur à saisie quelque chose ou pas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
echo %ERRORLEVEL%
set /p PAUSE=
echo %ERRORLEVEL%
cette méthode permet de tester si la variable "PAUSE" est definie ou pas mais ne permet pas de tester
la touche saisie par l'utilisateur.


cette formule "SET/P=" va fixer l'ERRORLEVEL à "1" car la syntaxe est incorrecte mais ça ne retournera pas de message d'erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SET/P=
echo %ERRORLEVEL%


est ce qu'on peux tester le caractère saisi au clavier ?

Oui, c'est possible, en utilisant un petit utilitaire "reply.com".
En réalite reply.com fixe un ERRORLEVEL égale au caractère ASCII associé à la touche entrer par l'utilisateur.
mais on peux aussi "embarquer" cette utilitaire dans notre fichier de commandes.

voici quelques ERRORLEVEL renvoyer par "reply" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
F1=59    A=97   M=109   Y=121  Flêche-Haut=72
F2=60    B=98   N=110   Z=122  Flêche-bas=80
F3=61    C=99   O=111          Flêche-gauche=75
F4=62    D=100  P=112          Flêche-droite=77
F5=63    E=101  Q=113          ENTER=13
F6=64    F=102  R=114          EChap=27
F7=65    G=103  S=115          Espace=32
F8=66    H=104  T=116          TAB=9
F9=67    I=105  U=117          BKSP=8
F10=68   J=106  V=118
F11=133  K=107  W=119
F12=134  L=108  X=120
et voici un petit exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@echo off & goto:skip
n k.com
e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
rcx
002E
w0
q
:skip
debug < "%~f0" >nul 
echo.
echo DEMO:   Pressez une touche de 0-9
echo.
:: on appel k.com l'executable créer par "debug"
k
if %errorlevel%==48 (set b=0.........)
if %errorlevel%==49 (set b=.1........)
if %errorlevel%==50 (set b=..2.......)
if %errorlevel%==51 (set b=...3......)
if %errorlevel%==52 (set b=....4.....)
if %errorlevel%==53 (set b=.....5....)
if %errorlevel%==54 (set b=......6...)
if %errorlevel%==55 (set b=.......7..)
if %errorlevel%==56 (set b=........8.)
if %errorlevel%==57 (set b=.........9)
::
echo         Touche: %b%
del k.com
set/p= & exit /b