Windows XP中模拟DOS choice命令的方法

0 下载量 65 浏览量 更新于2024-09-01 收藏 98KB PDF 举报
"这篇资源主要讨论的是在Windows XP系统中如何解决没有内置的DOS `choice`命令的问题,以及如何利用`set`命令来替代实现类似功能。" 在Windows XP中,由于`choice`命令是DOS 6.0中的一个外部命令,而在XP系统中并未包含`choice.exe`,因此无法直接使用`choice`来创建选择菜单。为了解决这个问题,文章建议使用`set`命令来替代`choice`。`set`命令在批处理脚本中通常用于设置变量的值,但在某些情况下,也可以用来模拟`choice`命令的功能。 `set`命令详解: 1. `set /p variable=promptstring` 这个命令会先显示`promptstring`,然后等待用户输入内容,用户按下回车键后,输入的内容会被赋值给`variable`。 2. `set /p variable=promptstring<file` 类似于上一个用法,但用户输入的部分被替换为从`file`文件中读取的内容,通常是文件的第一行。 3. `set /p variable=promptstring<nul` 显示`promptstring`,但由于`nul`是一个空设备,所以没有内容可以赋值给`variable`,变量`variable`保持未定义状态。 当`set /p`仅用于显示目的,即不需要用户输入时,可以省略变量。例如,`set /p="promptstring"`将只显示`promptstring`,如果用户直接回车,则仅显示提示信息。然而,这种方法需要用户按下回车键,且在实际应用中并无太大实用性。 在模拟`choice`功能时,可以通过`set /p`结合条件判断(如`if`语句)来实现选择菜单。例如,你可以设置一系列的选项,并根据用户输入的数字或字母来执行不同的操作。这虽然比直接使用`choice`命令复杂,但不失为一种可行的替代方案。 通过`set`命令的巧妙使用,可以在Windows XP环境下实现类似`choice`命令的功能,从而创建交互式的批处理脚本。这种方法对于那些需要在命令行界面中提供用户选择的场景非常有用。
2011-10-07 上传
win2003 Vista才有这个命令,可以放到xp中使用 ============================================================ Choice 在批处理程序中,通过显示提示信息并暂停批处理程序,用户可以从一组用户选项键中进行选择。 语法 choice [/c [Choices]] [/n] [/cs] [/tTimeout/dChoice] [/mText] 参数: /c Choices 指定用户选项键。显示时,选项键由逗号分隔,出现在括号([])中,后面跟着问号。如果未指定 /cChoices,默认情况下,choice 显示使用 [Y, N]。 /n 隐藏用户选项键。如果使用此命令行选项,将在提示符之前出现消息正文,选项仍处于启用状态。 /cs 指定用户选项键必须区分大小写。默认情况下,用户选项键不区分大小写。 /t Timeout /d Choice 指定在默认为指定键之前 choice 暂停指定的秒数。下表将描述 /t 命令行选项的值。 Timeout 要暂停的秒数。可接受的值介于 0 到 9999 之间。如果使用 0,choice 在默认为指定键之前不暂停。 /d Choice 指定 Timeout 秒数之后的默认选择。您使用的字符必须在由 /cChoices 指定的选择集中。如果使用此命令行选项,还必须同时指定 /tTimeout。 /m Text 指定要在提示符之前显示的文字。如果您包括命令行选项字符(即 /)作为提示符之前的一部分文字,必须用引号将该文字引起来。如果未指定任何文字,choice 将只显示提示符。 /? 在命令提示符下显示帮助。 注释 • ERRORVALUE 环境变量被设置为用户从选择列表中选择的键的索引。您指派的第一个键将返回值 1,第二个将返回值 2,第三个将返回值 3,依此类推。如果用户按下一个不在您指派的键中间的键,Choice.exe 将发出警告声(即,它向控制台发送一个 BEL 或 07h 字符)。如果 Choice.exe 检测到错误情况,它就会返回错误值 255。如果用户按 Ctrl+Break 或 Ctrl+C,Choice.exe 就会返回错误值 0。当您在批处理程序中使用错误值参数时,请将它们以降序列出。 示例 请在批处理文件中键入下列语法: choice /c ync 运行 Choice.exe 时出现下列语句: [Y,N,C]?请在批处理文件中键入下列语法: choice /c ync /n /m Yes, No or Continue? 运行 Choice.exe 时出现下列语句: Yes, No, or Continue?按如下方式将文字添加到语法中: choice /c ync /m Yes, No, or Continue 运行 Choice.exe 时出现下列语句: Yes, No, or Continue [Y,N,C]?/t 命令行选项将设置一个时间限制(在该限制内用户必须响应),并指定当用户在该时间限制内没有作出响应时将显示的值。要将时间限制设置为五秒并指定 N 作为默认值,请在批处理程序中键入下列命令行: choice /c ync /t 5 /d n 当批处理文件启动 Choice.exe 时,将出现下列消息: [Y,N,C]?如果用户未能在五秒钟内按下一个键,Choice.exe 将选择 N 并返回错误值 2。否则,Choice 将返回与用户所选对应的值。