有没有一种方法可以在Windows批处理脚本中提示用户输入(即:是/否),并且适用于XP和Windows 2003服务器?似乎有些命令(如:choice)只适用于某个操作系统而不适用于其他操作系统。
SET /P
命令不支持与CHOICE
命令相同的所有功能。具体来说:
CHOICE
命令而不是SET /P
命令。要做到这一点,您只需要在批处理文件中包含CHOICE.COM即可。您可以通过MS-DOS 6.22补充磁盘从Microsoft下载CHOICE.COM。以下是链接:
CHOICE.EXE
。至少,我的机器上有它,而且我非常确定我没有自己安装它。 - aphoriaSET /P RESULT=Y or N?
ECHO %RESULT%
这将基本上模仿choice的功能,您需要将其作为子程序放入批处理文件中。我也喜欢choice,但我需要一个可移植的东西,在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]: "
到目前为止,它对我来说一直运作得非常好。
SET /P ANSWER=y OR n?
If "%answer%"=="y" goto yes
If "%answer%"=="n" goto no
享受吧!
Windows Millenium的CHOICE.COM在XP SP3下运行良好。 然而,我的是匈牙利语,但你可能可以找到它的原始英语版本,例如搜索“windows millenium ebd”。
http://s000.tinyupload.com/index.php?file_id=57468192666746678653