【发布时间】:2020-02-13 08:22:17
【问题描述】:
我尝试编写一个简单的批处理文件,如下所示:
@echo off
title test file
:menu
set /p foo = Select option (1, 2, 3):
if foo == 1 goto one
if foo == 2 goto two
if foo == 3 goto three
:one
echo One!
goto menu
:two
echo Two!
goto menu
:three
echo Three!
goto menu
写入任何给定选项会将"One!" 写入屏幕并将用户返回到menu 标签。我怀疑错误与我声明的变量类型有关,虽然我不知道,因为我是 Batch 的新手......有什么帮助吗?
【问题讨论】:
-
如果您从
set /p foo=Select..中删除了=之前的空格并将foo == 1更改为%foo% equ 1它将起作用,除了担心您仍然需要解决一个人可以仍然键入您此时不适合的任何其他字符。choice已内置,只能选择定义的字符 -
我建议在How to stop Windows command interpreter from quitting batch file execution on an incorrect user input? 上阅读我的答案,它非常详细地解释了
set /P的缺点以及如何确保它的安全以及使用命令choice对选择菜单进行编码是多么容易,如图所示通过这里已经写的答案。
标签: batch-file