Finalidad: | Obtenga una sola pulsación de tecla del usuario y guárdela en un entorno o variable de matriz |
Formato: | INKEY [/= /C /D /K"claves" /P /M /T /Wn /X] [puntual] %%nombrevarna |
puntual | Texto opcional que se muestra como mensaje. |
nombrevar | La variable que contendrá la pulsación de tecla del usuario. |
esperar | Es hora de esperar una pulsación de tecla, en segundos |
Borrar buffer |
Contraseña |
||
Sólo dígitos |
Contador regresivo |
||
pulsaciones de teclas válidas |
Esperar |
||
Botones del ratón |
sin retorno de carro |
Ver también: ENTRADA.
Uso:
INKEY opcionalmente muestra un mensaje, luego espera durante un tiempo específico (o indefinidamente) una pulsación de tecla y coloca la pulsación de tecla en un entorno o matriz variable. Normalmente se utiliza en archivos por lotes y alias para obtener una opción de menú u otra entrada con una sola tecla. Junto con ENTRADA comando, INKEY permite una gran flexibilidad en la lectura de entradas desde un archivo por lotes o alias.
If puntual se incluye en un comando INKEY, se muestra mientras INKEY espera la entrada.
El siguiente comando solicita un carácter y lo almacena en la variable NUM:
inkey /D Introduzca un número del 1 al 9: %%num
INKEY lee la entrada estándar para la pulsación de tecla, por lo que aceptará pulsaciones de teclas de un archivo redirigido o de TECLAS. Puede proporcionar una lista de pulsaciones de teclas válidas con el /K .
La entrada numérica se puede ingresar en formato decimal (una secuencia de 0 a 9 dígitos) o en formato hexadecimal ("0x" seguido de una secuencia de 0 a F dígitos hexadecimales).
Una pulsación de tecla estándar se almacena directamente en la variable de entorno. Una pulsación de tecla extendida (por ejemplo, una tecla de función o una tecla de cursor) se almacena como una cadena, que consta de un @, seguido de su código de escaneo como un número decimal, por ejemplo, el F1 La clave se almacena como @ 59. Participar La clave se almacena como una pulsación de tecla extendida. @28. See ASCII, códigos clave y comandos ANSI X3.64 para códigos de escaneo.
Cuando el /M Esta opción permite el reconocimiento de los botones del ratón (y /W no se especifica), la variable se establece en un solo carácter con uno de los siguientes códigos:
. |
código |
left |
240 |
medio |
498 |
un Derecho |
497 |
Puede obtener la posición en la pantalla del último clic del mouse con el _xmouse y _ymouse variables internas.
Para probar un valor no imprimible devuelto por INKEY utilice el @ASCII función para obtener el valor numérico de la clave, o convertir el valor esperado del código en un código usando @CARBONIZARSE. Por ejemplo, para probar Esc, que tiene un ASCII valor de 27 o un botón izquierdo del ratón:
inkey Introduce una clave: %%key
si "%@ascii[%key]" == "27" echo Esc presionado
si %key EQ %@char[240] echo se hace clic con el botón izquierdo del mouse
Si presiona Ctrl-C or Ctrl-Pausa Mientras INKEY espera una clave, se finalizará la ejecución de un alias y se suspenderá la ejecución de un archivo por lotes mientras se le pregunta si desea cancelar el trabajo por lotes. Un archivo por lotes puede manejar Ctrl-C y Ctrl-Pausa con el EN EL ALMUERZO O DESCANSO mando.
Si no ingresa ningún argumento, INKEY mostrará su cuadro de diálogo de comando.
INKEY funciona dentro de la ventana de línea de comando. Si prefiere utilizar un cuadro de diálogo para la entrada del usuario, consulte la MSGBOX y CAJA DE CONSULTAS comandos.
Opciones:
inkey /k"ab[Ctrl-F9]" Ingrese A, B, Ctrl-F9 %%var
See Claves y nombres de claves para obtener una lista completa de los nombres de clave que puede utilizar entre corchetes y una descripción del formato de nombre de clave.
Si se ingresa una pulsación de tecla no válida, TCC repetirá la pulsación de tecla si es posible, emitirá un pitido, moverá el cursor hacia atrás un carácter y esperará a que se presione otra tecla.
/M | Acepte clics del botón del mouse. este es eSe habilita solo si la Edición rápida de Windows está deshabilitada (alt-espacio -> Propiedades -> Opciones). |
Por ejemplo, el siguiente fragmento de archivo por lotes espera hasta 10 segundos por un carácter y luego prueba si hay un "Y"se ingresó:
establecer netmon=N
inkey /K"YN" /w10 ¿Monitor de red (S/N)? %%netmon
si "%netmon" == "Y" entonces
rem Comandos para cargar el programa monitor
endiff