Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows XP的Windows批处理选择命令&;2003_Windows_Batch File_Cmd_Windows Xp - Fatal编程技术网

Windows XP的Windows批处理选择命令&;2003

Windows XP的Windows批处理选择命令&;2003,windows,batch-file,cmd,windows-xp,Windows,Batch File,Cmd,Windows Xp,是否有一种方法可以提示用户从在XP和Windows 2003 server上运行的Windows批处理脚本中输入(即:是/否)?某些命令(即:choice)似乎只在一个操作系统上工作,而在其他操作系统上不工作。使用带有/p开关的命令。请注意,SET/p命令不支持与choice命令相同的所有功能。即: SET /P RESULT=Y or N? ECHO %RESULT% 它不限制用户输入有效值 用户必须按enter键 您必须检查套管差异(例如“A”与“A”) 在一段时间后,没有办法默认某个选

是否有一种方法可以提示用户从在XP和Windows 2003 server上运行的Windows批处理脚本中输入(即:是/否)?某些命令(即:choice)似乎只在一个操作系统上工作,而在其他操作系统上不工作。

使用带有/p开关的命令。

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

SET /P RESULT=Y or N?
ECHO %RESULT%
  • 它不限制用户输入有效值
  • 用户必须按enter键
  • 您必须检查套管差异(例如“A”与“A”)
  • 在一段时间后,没有办法默认某个选择
出于这些原因,我仍然喜欢使用
CHOICE
命令,而不是
SET/p
命令。为此,只需将CHOICE.COM与批处理文件一起包含在内。您可以通过MS-DOS 6.22补充磁盘从Microsoft下载CHOICE.COM。以下是链接:


例如,您可以使用:

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

享受吧

这将基本上模拟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]: "

到目前为止,它对我来说运行得非常好。

Windows Millenium's CHOICE.COM在XP SP3下对我来说运行得很好。 然而,我的语言是匈牙利语,但您可能会找到它的原始英语变体,例如搜索“windows millenium ebd”


超时和默认值如何?我相信64位Windows 7包括
CHOICE.EXE
。至少,我的机器有它,我很确定我自己没有把它放在那里。你是对的@aphoria,我的有choice.exe,我也没有放在那里:)DOS 6.22实用程序的链接断了。我可以从Windows 98访问CHOICE.COM,但我的XP系统不喜欢它;32位Windows 7中的CHOICE.EXE在Windows XP系统上似乎也不起作用。虽然我不能说这个测试系统是“典型的”,但我的测试足够彻底,以至于这个答案在某些情况下似乎不可行。我把它放在C:\windows中,以便从任何地方都可以访问。欢迎使用。请在回答中直接提供解决方案。此外,请阅读: