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
cette méthode permet de tester si la variable "PAUSE" est definie ou pas mais ne permet pas de tester
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 echo %ERRORLEVEL% set /p PAUSE= echo %ERRORLEVEL%
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" :
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 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
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
Partager