Batch file 如果不是这样,这句话有什么错?

Batch file 如果不是这样,这句话有什么错?,batch-file,Batch File,这段代码应该是这样的,如果我按1-4,它会进入选项1-4,如果我按其他的,它会说这不是一个选项。但如果我键入其他内容,它将进入调试 我已经检查了好几次代码,没有发现错误。我甚至把它和这样的代码进行了比较,它确实可以工作,我甚至按Ctrl-c Ctrl-v’键,但它仍然不能工作 :admin cls color %debug% echo You have accessed the admin debug menu echo Do what you wan't echo [1] Set Debug

这段代码应该是这样的,如果我按1-4,它会进入选项1-4,如果我按其他的,它会说这不是一个选项。但如果我键入其他内容,它将进入调试

我已经检查了好几次代码,没有发现错误。我甚至把它和这样的代码进行了比较,它确实可以工作,我甚至按Ctrl-c Ctrl-v’键,但它仍然不能工作

:admin
cls
color %debug%
echo You have accessed the admin debug menu
echo Do what you wan't
echo [1] Set Debug color
echo [2] Set Default color
echo [3] Set Warning color
echo [4] Exit
set /p "lol=> "
IF /i %lol%==1 goto dbg if NOT goto 9
IF /i %lol%==2 goto dfc if NOT goto 9
IF /i %lol%==3 goto wnc if NOT goto 9
IF /i %lol%==4 goto start if NOT goto 9

:dbg
cls
color %debug%
echo Set Debug color
set /p "debug=> "
echo Debug color set to %debug%
color %debug%
pause
goto admin

:dfc
cls
color %debug%
echo Set Default color
set /p "default=> "
echo Default color set to %default%
pause
goto admin

:wnc
cls
color %debug%
echo Set Warning color
set /p "warning=> "
echo Warning color set to %warning%
pause
goto admin

:9
cls
color %warning%
echo This is not a viable option!
ping localhost -n 5 >nul
goto admin
我对它进行了测试,当我输入ex5时,它仍然会进行调试

IF /i %lol%==4 (goto start) else goto 9
虽然使用

IF /i "%lol%"=="4" (goto start) else goto 9

它提供了一些保护,防止出现无条目或包含空格的条目。

您应该更仔细地了解
如果
语句工作时是如何工作的

例如,这一行
IF/i%lol%==1 goto dbg IF NOT goto 9
毫无意义

您的代码应该如下所示:

...
set /p "lol=> "
IF /i "%lol%"=="1" goto dbg
IF /i "%lol%"=="2" goto dfc
IF /i "%lol%"=="3" goto wnc
IF /i "%lol%"=="4" goto start
cls
color %warning%
echo This is not a viable option!
ping localhost -n 5 >nul
goto admin
...
试试这个代码

IF /i %lol%==1 
(goto dbg) 
IF /i %lol%==2 
(goto dfc)
IF /i %lol%==3 
(goto wnc) 
IF /i %lol%==4 
(goto start)
else 
(goto 9)

您的第一个
if
将在更正后转到
dbg
9
。它不会执行任何其他比较,因为执行将转移到
dbg
9
。请在命令提示符窗口中键入
if/?
,阅读
if
命令的帮助;您将在此处找到所需的
else
子句……语法为
IF[/I][NOT]item1==item2命令。因此,虽然
IF/i%lol%==1 goto dbg
没有问题,但第二部分
IF NOT goto 9
没有意义。我假设
如果不是
应该是
否则
<代码>如果不是
必须后跟一个条件,如
如果不是“%lol%==5 GOTO XYZ”
<代码>如果不是则为
的批次变量=运算符。