Batch file 在批处理中,我的菜单将不起作用
我试图用批处理创建一个简单的菜单系统,但我不知道是“转到”还是输入部分搞错了。谢谢你的帮助Batch file 在批处理中,我的菜单将不起作用,batch-file,input,Batch File,Input,我试图用批处理创建一个简单的菜单系统,但我不知道是“转到”还是输入部分搞错了。谢谢你的帮助 @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 ec
@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
设置错误/p
尝试设置/p菜单输入=
set/p
的语法不正确。使用set/?
阅读帮助(goto:1)
周围的括号不会给你买任何东西else
在语法上既不正确(必须与if
在同一逻辑行上),又没有用处(因为如果if
成功,控制将传递给:3
)exit/b
或goto:eof
,以防止通过选项失去控制set/p
语法不正确
您需要使用设置
set/p
,并且在变量
名称后应该有=
符号
设置/p变量=[promptString]
阅读更多有关使用和的信息
(编辑-删除错误检查的误导性代码)
从菜单中选择选项时,使用Choice
和SET/p
IF Else
菜单进行样本批次
示例1使用IF-ELSE(输入错误检查)
示例2使用选择命令(无错误输入检查)
好的,我现在更新了你的代码,应该可以了 代码在这里
@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
那是错误的语法!在命令提示窗口中键入
set/?
,并仔细阅读帮助!缺少等号:set/P menuInput=
(无需报价)。不要在变量名和=
之间留空格,因为它会成为名称的一部分!根据我的经验,使用Set/P
一点问题都没有,在使用选项/参数时,不需要在Set
后面加空格;它只正确处理选项1,并在任何其他情况下标记错误。此外,在比较数字时,将/i开关包含在IF命令中也没有意义(不存在上/下数字…)
@echo off
::Your Menu to choose from
:menu
cls
echo ==============MENU==============
echo 1.command menu item 1
echo 2.command menu item 2
echo 3.command menu item 3
::check and limit user input to selection
choice /C 123 /N /M "Your Selection"
IF "%ERRORLEVEL%"=="1" goto 1
IF "%ERRORLEVEL%"=="2" goto 2
IF "%ERRORLEVEL%"=="3" goto 3
:1
echo command 1
pause>nul
goto menu
:2
echo command 2
pause>nul
goto menu
:3
echo command 3
pause>nul
goto menu
@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