choice - Permitir al usuario elegir

Mantenido el

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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>choice
[Y,N]?

Opciones del comando choice

El comando choice tiene las siguientes opciones:

OpciónDescripción
/C:[teclas]Especifica las teclas que el usuario puede elegir. Por defecto, el usuario puede elegir Y (sí) o N (no).
/NNo muestra las opciones después del mensaje de solicitud.
/SHace 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
) else (
  echo No
)

endlocal

Al ejecutar el archivo por lotes anterior, se mostrará lo siguiente:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
¿Sí o No?[Y,N]?

Si el usuario ingresa Y, se mostrará lo siguiente:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
¿Sí o No?[Y,N]? Y
C:\users\user>

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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
Elija su fruta favorita.[A:Manzana, B:Banana]? [A,B]? A
Manzana
C:\users\user>

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
) 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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
¿Sí o No?[Y,N]? N
No
C:\users\user>

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.

Pregunta 1

¿Para qué se utiliza el comando choice en el símbolo del sistema?

回答がサーバーに送信されることはありません
Pregunta 2

Después de recibir la entrada del usuario con el comando choice, ¿cómo se utiliza esa entrada?

回答がサーバーに送信されることはありません
Pregunta 3

¿Cuál es el mensaje de solicitud predeterminado del comando choice?

回答がサーバーに送信されることはありません
#Símbolo del sistema #Archivos por lotes #Línea de comandos #Comando #Entrada del usuario