在批处理中,我的菜单不起作用

时间:2017-11-29 09:08:16

标签: batch-file input

我试图用批处理创建一个简单的菜单系统,但我不知道它是'goto'还是我搞砸了的输入部分。将不胜感激!

@echo off
cls


echo ==============MENU==============
echo 1.
echo 2.
echo 3.

echo choose.
set/p "menuInput"



if %menuInput%==1 (goto :1)
if %menuInput%==2 (goto :2)
if %menuInput%==3 (goto :3)
else echo error
:1 echo 1
:2 echo 2
:3 echo 3

2 个答案:

答案 0 :(得分:0)

  1. set /p的语法不正确。使用set /?阅读帮助。

  2. (goto :1)周围的括号不会给你买任何东西。

  3. else在语法上都是不正确的(必须与if位于同一逻辑行上)并且无用(因为如果if成功控制将被传递到:3)。

  4. 您错过了一堆exit /bgoto :eof,以防止控制权落入选项。

答案 1 :(得分:0)

好吧,我现在更新了您的代码,此工作正常

在这里编码

@echo off
:menu
cls
title menu 
echo ==============MENU==============
echo 1.
echo 2.
echo 3.
set /p menuInput=? 1-3
if %menuInput% EQU 1 goto 1
if %menuInput% EQU 2 goto 2
if %menuInput% EQU 3 goto 3
goto error
:1 
echo1
pause
:2 
echo2
pause
:3 
echo3
pause
:error
echo error press 1-3
pause>nul
goto menu