Batch file 在IF语句中使用GOTO
我做错了什么?我一直在犯错误- (这在当时是出人意料的 试过这样做-Batch file 在IF语句中使用GOTO,batch-file,if-statement,cmd,goto,Batch File,If Statement,Cmd,Goto,我做错了什么?我一直在犯错误- (这在当时是出人意料的 试过这样做- if %_var%==1 ( goto :group1 ) else if %_var%==2 ( goto :group2 ) else ( goto :groupOthr ) 然后我得到- (后藤此时出人意料 刚刚答对了。在这里找到了答案- 正确。在这里找到答案-像这样简化。如果您的“groupOthr”代码就在下面,您可以删除最后一个goto if "%_var%"=="1" (
if %_var%==1 (
goto :group1
) else if %_var%==2 (
goto :group2
) else (
goto :groupOthr
)
然后我得到-
(后藤此时出人意料
刚刚答对了。在这里找到了答案-
正确。在这里找到答案-像这样简化。如果您的“groupOthr”代码就在下面,您可以删除最后一个goto
if "%_var%"=="1" (
goto :group1
) else if "%_var%"=="2" (
goto :group2
) else (
goto :groupOthr
)
还要注意,我引用了比较的两面,以避免在未定义变量时出现问题。这样简化。如果您的“groupOthr”代码就在下面,您可以删除最后一个goto
if "%_var%"=="1" (
goto :group1
) else if "%_var%"=="2" (
goto :group2
) else (
goto :groupOthr
)
还要注意,我引用了比较的两面,以避免变量未定义时出现问题。这是您应该使用的结构
if "%_var%"=="1" goto :group1
if "%_var%"=="2" goto :group2
goto :groupOthr
这是您应该使用的结构
if "%_var%"=="1" goto :group1
if "%_var%"=="2" goto :group2
goto :groupOthr
您不需要任何括号,它们在if语句中会导致很多错误。 下面是一个不带括号的工作if语句示例:
if "%_var%"=="1" (
goto :group1
) else (
if "%_var%"=="2" (
goto :group2
) else (
goto :groupOthr
)
)
您不需要任何括号,它们在if语句中会导致很多错误。 下面是一个不带括号的工作if语句示例:
if "%_var%"=="1" (
goto :group1
) else (
if "%_var%"=="2" (
goto :group2
) else (
goto :groupOthr
)
)
如果%\u var%==1(转到组1)
如果%\u var%==2(转到组2)
转到groupothr
试试看!如果成功了就投票!如果%\u var%==1(转到group1)
@echo off
:Main
cls
echo Press 1 or 2!
choice /c 12 /N >nul
if errorlevel 2
goto :Option2
if errorlevel 1
goto :Option1
:::::::::::::::::::::::::::
:Option2
cls
echo You pressed the number 2!
pause >nul
goto :Main
::::::::::::::::::::::::::::::::::::::
:Option1
cls
echo You pressed the number 1!
pause >nul
goto :Main
如果%\u var%==2(转到组2)
转到groupothr
试试看!如果有用就投票
@echo off
:Main
cls
echo Press 1 or 2!
choice /c 12 /N >nul
if errorlevel 2
goto :Option2
if errorlevel 1
goto :Option1
:::::::::::::::::::::::::::
:Option2
cls
echo You pressed the number 2!
pause >nul
goto :Main
::::::::::::::::::::::::::::::::::::::
:Option1
cls
echo You pressed the number 1!
pause >nul
goto :Main
在转到之前放入空格键…也在转到之后尝试一个空格键
我看不出我的原始答案是如何不起作用的……以下代码在我的一个批处理文件中,并且工作正常:
if %_var%==1 ( goto group1)
if %_var%==2 ( goto group2)
goto groupothr
但是,如果没有定义targeturl(转到err400),它也可以像一样工作。
此外,我还有一个脚本:
@echo关闭
设置定义i=hi
如果“%defini%”==“hi”(转到tyr)
回声不去。
暂停
出口
:tyr
echo goto成功了!
暂停
出口
其工作原理如下:
@echo关闭
设置定义i=hi
如果“%defini%”==“hi”(转到tyr)
回声不去。
暂停
出口
:tyr
echo goto成功了!
暂停
出口
尝试复制上述代码并将其保存到trygoto.bat,然后运行它
在转到之前放入空格键…也在转到之后尝试一个空格键
我看不出我的原始答案是如何不起作用的……以下代码在我的一个批处理文件中,并且工作正常:
if %_var%==1 ( goto group1)
if %_var%==2 ( goto group2)
goto groupothr
但是,如果没有定义targeturl(转到err400),它也可以像一样工作。
此外,我还有一个脚本:
@echo关闭
设置定义i=hi
如果“%defini%”==“hi”(转到tyr)
回声不去。
暂停
出口
:tyr
echo goto成功了!
暂停
出口
其工作原理如下:
@echo关闭
设置定义i=hi
如果“%defini%”==“hi”(转到tyr)
回声不去。
暂停
出口
:tyr
echo goto成功了!
暂停
出口
尝试复制上述代码并将其保存到trygoto.bat中,然后运行它。括号(或括号)非常好,正确使用时不会导致问题,并且与
else
子句一起是必需的……不,我的意思是如果您没有正确使用它们。我知道您需要在else子句中使用它们,但用户将括号放在如下位置:(gotoThe OP正确地使用了它们(尽管他们的第二次尝试看起来很奇怪,但没有错)…对不起,我说错了。如果你知道我的意思,我想说的是他们是否使用了不正确的结构。因为他们以前的命令,windows认为(是另一个命令的一部分。括号(或括号)非常好,正确使用时不会引起问题,并且与else
子句一起是强制性的…不,我的意思是如果你没有正确使用它们。我知道你在else子句中需要它们,但用户将括号放在如下位置:(gotoThe OP正确使用它们(尽管他们的第二次尝试看起来很奇怪,但没有错)…很抱歉,我说错了。意思是说如果你知道我的意思,他们是否使用了不正确的结构。由于他们以前的命令,windows认为(是另一个命令的一部分。可能重复的可能重复的)