适用于 Windows XP 和 2003 的 Windows 批处理选择命令
Posted
技术标签:
【中文标题】适用于 Windows XP 和 2003 的 Windows 批处理选择命令【英文标题】:Windows batch choice command for Windows XP & 2003 【发布时间】:2010-10-08 16:37:02 【问题描述】:有没有办法提示用户通过在 XP 和 Windows 2003 服务器上运行的 Windows 批处理脚本进行输入(即:是/否)?似乎有些命令(即:选择)只能在一个操作系统上运行,而不能在其他操作系统上运行。
【问题讨论】:
【参考方案1】:使用带有 /P 开关的 SET 命令。
【讨论】:
超时和默认值怎么样?【参考方案2】:SET /P RESULT=Y or N?
ECHO %RESULT%
【讨论】:
【参考方案3】:请注意,SET /P
命令不支持与CHOICE
命令相同的所有功能。即:
由于这些原因,我还是更喜欢使用CHOICE
命令而不是SET /P
命令。为此,您只需在批处理文件中包含 CHOICE.COM。您可以通过 MS-DOS 6.22 Supplemental Disk 从 Microsoft 下载 CHOICE.COM。这是链接:
http://support.microsoft.com/kb/117600
【讨论】:
我相信 64 位 Windows 7 包括CHOICE.EXE
。至少,我的机器有它,而且我很确定我自己没有把它放在那里。
你是对的@aphoria,我的有choice.exe,我也没有把它放在那里:)
DOS 6.22 实用程序的链接已损坏。我可以从 Windows 98 访问 CHOICE.COM,但我的 XP 系统不支持它;来自 32 位 Windows 7 的 CHOICE.EXE 似乎也无法在 Windows XP 系统上运行。虽然我不能说这个测试系统是“典型的”,但我的测试足够彻底,以至于这个答案在某些情况下似乎不可行。【参考方案4】:
这将基本上模仿选择的作用,您需要将其作为子程序放入批处理文件中。我也更喜欢选择,但我需要可以在 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]: "
到目前为止,它对我来说效果很好。
【讨论】:
【参考方案5】:例如你可以使用这个:
SET /P ANSWER=y OR n?
If "%answer%"=="y" goto yes
If "%answer%"=="n" goto no
享受吧!
【讨论】:
【参考方案6】:Windows Millenium 的 CHOICE.COM 在 XP SP3 下可以正常工作。 但是,我的语言是匈牙利语,但您可能会找到它的原始英文变体,例如搜索“windows millenium ebd”。
http://s000.tinyupload.com/index.php?file_id=57468192666746678653
【讨论】:
我已将它放在 C:\windows 中,以便可以从任何地方访问。 欢迎来到 SO。请直接在您的答案中提供解决方案。另请阅读:***.com/help/answering以上是关于适用于 Windows XP 和 2003 的 Windows 批处理选择命令的主要内容,如果未能解决你的问题,请参考以下文章
如何使用适用于 Windows 8 的 Visual Studio Express 2012 创建适用于 Windows XP 的应用程序
适用于 Windows XP、7、8 应用程序的 USB 麦克风描述符