Как использовать команду IF ELSE - PullRequest
0 голосов
/ 16 ноября 2018

Я начинающий программист, создающий текстовую игру в пакетном режиме, и мне интересно, как сказать следующее в коде:

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

Если кто-то имеет ссылку на учебник или может ответить вответ стек, который был бы удивительным!Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Поместите это в разрыв цикла, если не определена только одна переменная

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

:otherloop 
Echo not all vars defined
0 голосов
/ 17 ноября 2018

Это только один способ проверить, определены ли все необходимые переменные. Вы можете использовать команду 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...