Batch file 如何使用IF-ELSE命令

Batch file 如何使用IF-ELSE命令,batch-file,Batch File,我是一名开始编写基于批处理的文本游戏的程序员,我想知道如何在代码中说: If {these variables} have been defined Then goto {this loop} Else goto {other loop} 如果有人有一个教程的链接,或者可以在一堆答案中回答,那就太棒了!谢谢 这只是一种方法,您可以测试是否定义了所需的所有变量。您可以使用FOR命令循环遍历所有变量名,并使用IF命令查看它们是否已定义。然后我设置了两个计数器。一个表示变量总数,一个表示定义的变

我是一名开始编写基于批处理的文本游戏的程序员,我想知道如何在代码中说:

If {these variables} have been defined 
Then goto {this loop} 
Else goto {other loop}

如果有人有一个教程的链接,或者可以在一堆答案中回答,那就太棒了!谢谢

这只是一种方法,您可以测试是否定义了所需的所有变量。您可以使用
FOR
命令循环遍历所有变量名,并使用
IF
命令查看它们是否已定义。然后我设置了两个计数器。一个表示变量总数,一个表示定义的变量总数

@echo off

REM Change these variables to test logic
set "var1=one"
set "var2=two"
set "var3=3"

set "allvars=var1 var2 var3"

set "vcnt=0"
set "defcnt=0"
FOR %%G IN (%allvars%) do (
    set /a vcnt+=1
    IF DEFINED %%G SET /a defcnt+=1
)

IF %vcnt% equ %defcnt% (
    GOTO allvars
) else (
    GOTO notdefined
)

:allvars
echo All variables defined
GOTO END

:notdefined
echo Some variables not defined
GOTO END

:END
pause

这只是一种方法,您可以测试是否定义了所有需要的变量。您可以使用
FOR
命令循环遍历所有变量名,并使用
IF
命令查看它们是否已定义。然后我设置了两个计数器。一个表示变量总数,一个表示定义的变量总数

@echo off

REM Change these variables to test logic
set "var1=one"
set "var2=two"
set "var3=3"

set "allvars=var1 var2 var3"

set "vcnt=0"
set "defcnt=0"
FOR %%G IN (%allvars%) do (
    set /a vcnt+=1
    IF DEFINED %%G SET /a defcnt+=1
)

IF %vcnt% equ %defcnt% (
    GOTO allvars
) else (
    GOTO notdefined
)

:allvars
echo All variables defined
GOTO END

:notdefined
echo Some variables not defined
GOTO END

:END
pause

如果只定义了一个var,则将其放入循环中断

For %%A in (these variables) Do If not defined %%A goto :otherloop
Echo all vars defined
Goto :eof

:otherloop 
Echo not all vars defined

如果只定义了一个var,则将其放入循环中断

For %%A in (these variables) Do If not defined %%A goto :otherloop
Echo all vars defined
Goto :eof

:otherloop 
Echo not all vars defined

是否必须定义所有变量?您是否需要知道哪些是/不是?您是否至少打开了命令提示符并阅读了
IF
命令的帮助?键入:
如果/?
@Compo Yes我确实需要在前面定义所有变量,这可能不可能,但idk用于sure@Squashman谢谢,我看了看,但我需要的是在一个单独的循环中定义变量,而不是说如果所说的变量被定义了,那么就继续,否则就返回到一个中心循环,这个循环至少不会阻止您编写代码。如果您阅读帮助文件,您会知道语法中没有
,那么
,ELSE语法非常清楚它的工作原理。括号是必需的。是否必须定义所有变量?您是否需要知道哪些是/不是?您是否至少打开了命令提示符并阅读了
IF
命令的帮助?键入:
如果/?
@Compo Yes我确实需要在前面定义所有变量,这可能不可能,但idk用于sure@Squashman谢谢,我看了看,但我需要的是在一个单独的循环中定义变量,而不是说如果所说的变量被定义了,那么就继续,否则就返回到一个中心循环,这个循环至少不会阻止您编写代码。如果您阅读帮助文件,您会知道语法中没有
,那么
,ELSE语法非常清楚它的工作原理。括号是必需的。是的。那又短又简单,是的。这很简单。