我正在用BATCH编写一些东西,我需要使用GOTO,但不是转到正确的GOTO,而是转到下一个标签/类,而不是正确的标签/类。
我尝试在没有冒号的情况下使用它,但仍然无法解决问题。
@echo off
title Nexus Generator
color 0a
goto :signin
:signin
echo =====================================
echo Welcome to NEXUS GENERATOR!
echo Please enter your KEY!
echo =====================================
set /p id="Enter Key: "
if %id% == "Test" then goto :signedin else goto :error
:error
echo uh lol
:signedin
cls
echo lol
pause >nul
我希望输入TEST会进入登录状态,输入其他任何内容都会出错。
答案 0 :(得分:1)
您还需要将一些“用引号引起来”与一些“用引号引起来”进行比较,
goto:避免执行下一行的地方,例如goto:eof
@echo off
color 0a
title Nexus Generator
echo/=====================================
echo/Welcome to NEXUS GENERATOR^!
echo/Please enter your KEY^!
echo/=====================================
set /p "id=Enter Key: "
if /i "%id%" == "test" goto :signedin
:error
echo/uh lol
goto :eof
:signedin
cls
echo/lol
pause >nul
在一个简短版本中:
@echo off & color 0a
title Nexus Generator
echo/=====================================
echo/Welcome to NEXUS GENERATOR^!
echo/Please enter your KEY^!
echo/=====================================
set /p "id=Enter Key: "
echo/%id%|findstr /lic:"test" 2>nul && goto :signedin
:error
echo/uh lol & goto :eof
:signedin
cls & echo/lol & pause >nul
答案 1 :(得分:0)
由于您只有2个要onComplete
的结果,我会说您不需要else语句,因为goto
仅在goto
语句匹配时才会出现,否则它只会导致错误。但是,我们需要测试运算符的每一边是否相等。目前,您正在测试if
。请注意,其中一个被引用,另一个未被引用,并且您希望具有完全匹配的内容,因此您需要对变量加双引号。 Test == "Test"
:
"%id%"=="Test"
也就是说,除非完全需要,否则我不愿使用@echo off
title Nexus Generator
color 0a
goto :signin
:signin
echo =====================================
echo Welcome to NEXUS GENERATOR!
echo Please enter your KEY!
echo =====================================
set /p id="Enter Key: "
if /i "%id%" == "Test" goto :signedin
echo Oops, you entered "%id%" instead of "Test"
goto :eof
:signedin
cls
echo You're now signed in!!
pause >nul
语句,因此我们可以在goto
和if
语句之后运行代码块:
else