2009-02-19 11 views

Respuesta

8

Utilice el comando SET con el modificador/P.

+2

¿qué tal un tiempo de espera y un valor predeterminado? – Baczek

6
SET /P RESULT=Y or N? 
ECHO %RESULT% 
6

Tenga en cuenta que el comando SET /P no es compatible con todas las mismas características que el comando CHOICE. A saber:

  • No restringe al usuario introducir un valor válido
  • El usuario tiene que presionar entrar
  • Hay que comprobar si hay diferencias de revestimiento (por ejemplo, "A" vs "a")
  • no hay manera de defecto a una determinada elección después de una cierta cantidad de tiempo

Por estas razones, yo prefiero utilizar el comando CHOICE en lugar del comando SET /P. Para hacer esto, solo necesita incluir CHOICE.COM junto con su archivo por lotes. Puede descargar CHOICE.COM de Microsoft a través del MS-DOS 6.22 Supplemental Disk. Aquí está el enlace:

http://support.microsoft.com/kb/117600

+0

Desafortunadamente "choice.com" no funciona para sistemas de 64 bits. – Paulius

+2

Creo que Windows 7 de 64 bits incluye 'CHOICE.EXE'. Al menos, mis máquinas lo tienen y estoy bastante seguro de que no lo puse allí. – aphoria

+0

Estás en @aphoria, el mío tiene choice.exe y tampoco lo puse :) – MikeRoger

1

Por ejemplo, podría usar esto:

SET /P ANSWER=y OR n? 
If "%answer%"=="y" goto yes 
If "%answer%"=="n" goto no 

Enjoy!

2

Esto básicamente imitará lo que hace la opción, tendrá que ponerlo como una subrutina en su archivo por lotes. También prefiero la opción, pero necesito algo portátil que se ejecute en Windows XP.

Puede modificar esto para aceptar otras "opciones", sin embargo, esto funcionará sin distinción entre mayúsculas y minúsculas y repetirá el aviso hasta que el usuario ingrese explícitamente Y, y, N o n.

:yesorno 
set /p choice=%2 
if /i NOT %choice% == n (
    if /i NOT %choice% == y goto yesorno 
) 
set "%~1=%choice%" 
goto :eof 

A continuación, llamar a esta subrutina a través de:

call :yesorno answer "Do you want to continue? [Y/n]: " 

Se ha estado trabajando muy bien para mí hasta ahora.

-1

CHOICE.COM de Windows Millenium funciona bien para mí en XP SP3. Sin embargo, el mío es el idioma húngaro, pero probablemente pueda encontrar su variante original en inglés, por ejemplo, buscar "windows millenium ebd".

http://s000.tinyupload.com/index.php?file_id=57468192666746678653

+0

Lo he puesto en C: \ windows para poder acceder desde cualquier lugar. – BlueWings

+0

Bienvenido a SO. Proporcione la solución directamente en su respuesta. Además, lea: https://stackoverflow.com/help/answering –

Cuestiones relacionadas