【发布时间】:2010-10-08 16:37:02
【问题描述】:
有没有办法提示用户通过在 XP 和 Windows 2003 服务器上运行的 Windows 批处理脚本进行输入(即:是/否)?似乎有些命令(即:选择)只能在一个操作系统上运行,而不能在其他操作系统上运行。
【问题讨论】:
标签: windows batch-file cmd windows-xp
有没有办法提示用户通过在 XP 和 Windows 2003 服务器上运行的 Windows 批处理脚本进行输入(即:是/否)?似乎有些命令(即:选择)只能在一个操作系统上运行,而不能在其他操作系统上运行。
【问题讨论】:
标签: windows batch-file cmd windows-xp
使用带有 /P 开关的 SET 命令。
【讨论】:
SET /P RESULT=Y or N?
ECHO %RESULT%
【讨论】:
请注意,SET /P 命令不支持与CHOICE 命令相同的所有功能。即:
由于这些原因,我还是更喜欢使用CHOICE 命令而不是SET /P 命令。为此,您只需在批处理文件中包含 CHOICE.COM。您可以通过 MS-DOS 6.22 Supplemental Disk 从 Microsoft 下载 CHOICE.COM。这是链接:
【讨论】:
CHOICE.EXE。至少,我的机器有它,而且我很确定我自己没有把它放在那里。
这将基本上模仿选择的作用,您需要将其作为子程序放入批处理文件中。我也更喜欢选择,但我需要可以在 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
【讨论】: