2009-02-19 113 views

回答

8

使用SET命令与/ P开关。

+2

如何超时和默认? – Baczek 2012-01-03 10:14:25

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

注意,SET /P命令不支持所有相同的功能,CHOICE命令。即:

  • 它没有用户限制输入有效值
  • 用户必须按回车键
  • 你必须检查外壳差异(例如“A”和“A”)
  • 没有办法为默认的必然选择一定的时间

出于这些原因后,我还是更喜欢使用CHOICE命令,而不是SET /P命令。要做到这一点,你只需要包括CHOICE.COM以及你的批处理文件。你可以从微软通过MS-DOS 6.22附加磁盘下载CHOICE.COM。这里的链接:

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

+0

不幸的是,“choice.com”不适用于64位系统。 – Paulius 2011-05-05 08:59:22

+2

我相信64位Windows 7包含`CHOICE.EXE`。至少,我的机器有它,我很确定我没有把它放在那里。 – aphoria 2012-01-07 14:01:40

1

举例来说,你可以这样做:

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

享受!

2

这将基本上模仿做了什么选择,你需要把它作为在批处理文件中的子程序。我也更喜欢选择,但我需要一些可在Windows XP上运行的便携式设备。

然后,您可以修改此接受其他“选择”,然而,这将作为区分大小写,重复提示,直到用户明确地进入Y,Y,N,或n。

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

它一直对我非常好,到目前为止:

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

你会然后通过调用这个子程序。