choice - Permitir al usuario elegir
Cuando se utiliza el símbolo del sistema o archivos por lotes, a menudo es necesario recibir entradas del usuario para bifurcar el procesamiento.
Sin embargo, permitir entradas libres puede causar errores debido a entradas no intencionadas.
En esta página, se presenta el uso básico y ejemplos específicos del comando choice
, que permite recibir entradas de teclas especificadas por el usuario.
¿Qué es el comando choice
?
El comando choice
muestra un mensaje que solicita al usuario que ingrese una tecla especificada y bifurca el procesamiento según la tecla ingresada.
El uso básico del comando choice
es el siguiente:
choice [/c [<tecla1><tecla2><…>]] [/n] [/cs] [/t <segundos de espera> /d <opción predeterminada>] [/m <mensaje>]
También se puede usar sin especificar opciones, en cuyo caso se verá de la siguiente manera:
Opciones del comando choice
El comando choice
tiene las siguientes opciones:
Opción | Descripción |
---|---|
/C:[teclas] | Especifica las teclas que el usuario puede elegir. Por defecto, el usuario puede elegir Y (sí) o N (no). |
/N | No muestra las opciones después del mensaje de solicitud. |
/S | Hace que las opciones distingan entre mayúsculas y minúsculas. Por defecto, no se distingue entre mayúsculas y minúsculas. |
/T:[segundos] | Especifica el número de segundos que se espera a que el usuario presione una tecla. Si no se especifica, espera indefinidamente. |
/D:[tecla] | Especifica la tecla predeterminada que se usa si el tiempo especificado con /T expira. Debe usarse con la opción /T. |
/M:[mensaje] | Especifica el mensaje que se muestra en la solicitud. |
Uso específico del comando choice
Bifurcar el procesamiento según la elección del usuario
El uso más básico del comando choice
es bifurcar el procesamiento según la elección del usuario.
En el siguiente código de ejemplo, si el usuario ingresa Y
, se muestra Yes
; si ingresa N
, se muestra No
.
@echo off
setlocal
choice /c YN /m "¿Sí o No?"
if %errorlevel% == 1 (
echo Sí
) else (
echo No
)
endlocal
Al ejecutar el archivo por lotes anterior, se mostrará lo siguiente:
Si el usuario ingresa Y
, se mostrará lo siguiente:
Mostrar un mensaje y opciones personalizadas
Combinando las opciones /c
y /m
, se puede mostrar un mensaje y opciones personalizadas.
En el siguiente código de ejemplo, se pide al usuario que elija su fruta favorita y se muestra la fruta seleccionada.
@echo off
setlocal
choice /c AB /m "Elija su fruta favorita.[A:Manzana, B:Banana]"
if %errorlevel% == 1 (
echo Manzana
) else (
echo Banana
)
endlocal
Al ejecutar el archivo por lotes anterior, se mostrará lo siguiente:
Habilitar el tiempo de espera
Especificando la opción /t
, se puede establecer el número de segundos que se espera a que el usuario presione una tecla.
En el siguiente código de ejemplo, se muestra la opción Y/N
durante 5 segundos y, si no se selecciona ninguna opción, se muestra No
.
@echo off
setlocal
choice /c YN /t 5 /d N /m "¿Sí o No?"
if %errorlevel% == 1 (
echo Sí
) else (
echo No
)
endlocal
Al ejecutar el archivo por lotes anterior, si no se ingresa ninguna opción en 5 segundos, se mostrará No
como se muestra a continuación:
Ejercicios
Finalmente, intentemos un test de confirmación.
El test se completa en el lado del cliente, por lo que no se envían datos al servidor.