6

有没有办法提示用户从可在 XP 和 Windows 2003 服务器上运行的 Windows 批处理脚本中输入输入(即:是/否)?似乎某些命令(即:选择)仅适用于一个操作系统而不适用于其他操作系统。

4

6 回答 6

8

使用带有 /P 开关的SET命令。

于 2009-02-19T20:16:38.533 回答
6
SET /P RESULT=Y or N?
ECHO %RESULT%
于 2009-02-20T00:01:13.500 回答
6

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

  • 它不限制用户输入有效值
  • 用户必须按回车
  • 您必须检查大小写差异(例如“A”与“a”)
  • 没有办法在一定时间后默认某个选择

由于这些原因,我仍然更喜欢使用CHOICE命令而不是SET /P命令。为此,您只需要在批处理文件中包含CHOICE.COM 。您可以通过MS-DOS 6.22 Supplemental Disk从 Microsoft下载CHOICE.COM。这是链接:

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

于 2009-11-10T16:20:20.150 回答
2

这基本上会模仿选择的作用,您需要将其作为子程序放在批处理文件中。我也更喜欢选择,但我需要可以在 Windows XP 上运行的便携式设备。

然后您可以修改它以接受其他“选择”,但是这将不区分大小写并重复提示,直到用户明确输入 Y、y、N 或 n。

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

然后,您将通过以下方式调用此子例程:

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

到目前为止,它对我来说效果很好。

于 2015-08-20T19:20:07.430 回答
1

例如你可以使用这个:

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

享受!

于 2012-05-06T07:23:28.443 回答
-1

Windows Millenium 的 CHOICE.COM 在 XP SP3 下对我来说可以正常工作。但是,我的语言是匈牙利语,但您可能会找到它的原始英文变体,例如搜索“windows millenium ebd”。

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

于 2017-09-14T11:07:32.547 回答