有人可以帮我理解我的批处理程序发生了什么吗?(​​菜单/多选项)

时间:2016-11-02 14:45:31

标签: batch-file

你好,我是一个程序员,制作一个小小的"工具"那使用批处理,我遇到了一个问题,无论如何......当你输入输入时,无论我做什么(或者用户),它都会转到第一个选项。

echo            1) File Explorer
echo.
echo            2) Terminal
echo.           
echo            3) Tools
echo.
echo            4) About
echo.
echo            5) Exit
::This is the Main Menu Input Stuff:::::::::::::::;::::
set /P Input = ">"
if /I %Input% EQU "1" goto :FileExplorer
if /I %Input% EQU "2" goto :Terminal
if /I %Input% EQU "3" goto :Tools
if /I %Input% EQU "4" goto :About
if /I %Input% EQU "5" goto :ExitQ

所以我不确定我做错了什么,所以任何帮助都会很好。谢谢 还有一些事情,我检查了拼写错误,然后用else语句重写它,但这只是让它崩溃/退出。

1 个答案:

答案 0 :(得分:2)

  if /I %Input% EQU "1" goto :FileExplorer

您需要包含引号,因为比较是文字的(并且不需要冒号)

 if /I "%Input%" EQU "1" goto FileExplorer

批量只是在线后收费,直到它被告知goto某处或到达文件结尾,因此如果 none 你的测试通过一个分支导致分支goto然后执行... equ "5"之后的下一个语句。我保证以下命令是您的第一个选项,:fileexplorer

aschipfl指出,inputset之后的空格很重要,应该删除。这是我的标准模糊:

批处理对SET语句中的空格敏感。 SET FLAG = N设置一个名为" FLAG Space "的变量。值为" 空格 N"