Articulo de referencia

elección (comando)

choice command"},"developer":{"wt":"[[Microsoft]], [[Novell]], [[Datalight]], [[Jim Hall (computer programmer)|Jim Hall]], ReactOS Contributors"},"released":{"wt":"{{Release yea...

En informática , choicees un comando que permite que los archivos por lotes soliciten al usuario que seleccione un elemento de un conjunto de opciones de un solo carácter. [ 1 ] Está disponible en varios shells de línea de comandos de sistemas operativos .

Historia

El comando se introdujo por primera vez como un comando externo (con los nombres de archivo CHOICE.COM o CHOICE.EXE) con MS-DOS 6.0. [ 2 ] Está incluido en Novell DOS 7 e IBM PC DOS 7.0, y también está disponible desde el shell de línea de comandos de algunas versiones de Microsoft Windows , pero no en Windows 2000 y Windows XP . [ 3 ] Se puso a disposición por primera vez para Windows en el Kit de recursos de Windows XP . [ 4 ] Se ha reintroducido en Windows Server 2003 y está presente en versiones posteriores. [ 5 ]

A partir de Windows 2000, el SETcomando tiene una funcionalidad similar utilizando el /Pargumento de línea de comandos . Sin embargo, este comando requiere una pulsación de tecla adicional (pulsar la tecla ENTER), que no es necesaria para choice.

El choicecomando se ha portado a OS/2 , Rexx y Perl . [ 6 ] También está disponible en Datalight ROM-DOS , [ 7 ] FreeDOS , [ 8 ] PTS-DOS , [ 9 ] y ReactOS . [ 10 ] La versión de FreeDOS fue desarrollada por Jim Hall y está licenciada bajo la GPL v2 . [ 11 ]

Uso

El comando devuelve la opción seleccionada como un código de salida que se establece en el índice de la tecla que el usuario selecciona de la lista de opciones. La primera opción de la lista devuelve un valor de 1, la segunda un valor de 2, y así sucesivamente. Si se presiona una tecla que no es una opción válida, el comando emitirá un pitido de advertencia. Si se detecta una condición de error, se devolverá un código de salida de 255. Se devolverá un código de salida de 0 si el usuario presiona CTRL+ o + . Choice muestra las opciones predeterminadas Y y N si se usa sin parámetros. [ 12 ]BREAKCTRLC

Sintaxis

DOS

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] ["text"]

Argumentos:

  • /C[:]choicesEspecifica las claves permitidas. El valor predeterminado es "YN".
  • /T[:]c,nnEsto establece la opción predeterminada en "c" después de "nn" segundos.
  • textEspecifica el texto que se mostrará en el mensaje. (Las comillas son opcionales).

Banderas:

  • /NEspecifica que no se muestren las opciones ni el signo de interrogación al final de la cadena de solicitud.
  • /SEspecifica que las claves de selección deben tratarse como sensibles a mayúsculas y minúsculas.

Microsoft Windows, ReactOS

CHOICE [/C [<Choice1><Choice2><…>]] [/N] [/CS] [/T <Timeout> /D <Choice>] [/M <"Text">]

Argumentos:

  • /C[:]choicesEspecifica las teclas permitidas. El valor predeterminado es "YN". (Microsoft Windows restringe las teclas de selección válidas a az, AZ, 0-9 y valores ASCII de 128 a 254).
  • /T[:]nnEsta opción predeterminada es /D después de "nn" segundos. Debe especificarse con el valor predeterminado /D.
  • /D[:]cEsto establece la opción predeterminada en 'c'.
  • /M textEspecifica el texto que se mostrará en el mensaje.

Banderas:

  • /NEspecifica que no se muestren las opciones ni el signo de interrogación al final de la cadena de solicitud.
  • /CSEspecifica que las claves de selección deben tratarse como sensibles a mayúsculas y minúsculas.

Ejemplo

El archivo por lotes que se muestra a continuación ofrece al usuario tres opciones. [ 13 ] El usuario es dirigido según su entrada evaluando el código de salida mediante el IF ERRORLEVELcomando (que comprueba si es "mayor o igual"). La opción seleccionada se imprime en la pantalla mediante el ECHOcomando.

@ ECHO OFF @ CHOICE /C:XYZ IF ERRORLEVEL 3 GOTO Zpressed IF ERRORLEVEL 2 GOTO Ypressed IF ERRORLEVEL 1 GOTO Xpressed GOTO end : Xpressed ECHO ¡ Has pulsado "X" ! GOTO end : Ypressed ECHO ¡ Has pulsado "Y" ! GOTO end : Zpressed ECHO ¡ Has pulsado "Z" ! : end @ PAUSE
Tenga en cuenta que el ejemplo utiliza la sintaxis de DOS. Este ejemplo requiere pequeños ajustes antes de que pueda aplicarse directamente a las versiones de Windows del CHOICEcomando.
Tenga en cuenta que el comando IF, al comprobar ERRORLEVEL, compara el número y coincide si ERRORLEVEL es igual o superior a dicho número. Por este motivo, las comparaciones de IF ERRORLEVEL deben realizarse en orden descendente.
Tenga en cuenta que si el usuario presiona Control-C para salir de CHOICE seguido de N, el programa continuará. El primer "Goto end" es necesario.

Véase también

Referencias

  1. Jamsa, Kris A. (1993), DOS: The Complete Reference , Osborne McGraw-Hill, pág.  206, ISBN 0078819040.
  2. " Comando de elección de línea de comandos de MS-DOS y Windows" . www.computerhope.com
  3. "Referencia de la línea de comandos de Microsoft Windows XP AZ" . Microsoft .
  4. "Opción - Aceptar entrada del usuario - Windows CMD - SS64.com" . ss64.com .
  5. "Haz que el comando Choice funcione para ti incluso en Windows 7" . TechRepublic . 13 de octubre de 2023.
  6. " Archivos por lotes - El comando CHOICE" . www.robvanderwoude.com
  7. "Guía del usuario de Datalight ROM-DOS" (PDF) . www.datalight.com .
  8. ^ "Ibiblio.org Grupo FreeDOS - Base FreeDOS" . www.ibiblio.org .
  9. "Manual de usuario de PTS-DOS 2000 Pro" (PDF) . Buggingen, Alemania: Paragon Technology GmbH . 1999. Archivado (PDF) del original el 12 de mayo de 2018. Consultado el 12 de mayo de 2018 .
  10. "reactos/reactos" . GitHub . 27 de octubre de 2022.
  11. "ibiblio.org Paquete FreeDOS -- elección (FreeDOS Base)" . www.ibiblio.org .
  12. "Artículo de Microsoft TechNet Choice" . 31 de agosto de 2016.
  13. " Ayuda y soporte para archivos por lotes" . www.computerhope.com

Lecturas adicionales

  • Cooper, Jim (2001). Edición especial con MS-DOS 6.22, tercera edición . Que Publishing . ISBN 978-0789725738.
  • Stanek, William R. (2008). Windows Command-Line Administrator's Pocket Consultant, 2.ª edición . Microsoft Press . ISBN 978-0735622623.
  • Artículo de Microsoft TechNet Choice