2009-02-19 111 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 

你會然後通過調用這個子程序。