Я пытаюсь выяснить, как проверить возвращаемое значение вызова функции в цикле и прерывает цикл, если функция возвращает определенное значение.
Следующий пакетный скрипт - моя попытка, функция возвращает ожидаемое значение при первых двух вызовах функции. Когда вызов сделан внутри цикла, я не могу понять, как проверить возвращаемое значение. Пожалуйста, укажите мне, как проверить возвращаемое значение функции в цикле.
SET var1=2
SET var2=0
CALL :FUNC %var1 var2
ECHO var2 is: %var2%
REM ============================
SET var1=6
SET var2=0
CALL :FUNC %var1 var2
ECHO var2 is: %var2%
REM ============================
SETLOCAL EnableDelayedExpansion
SET list=1 0 3 4
FOR %%n IN (%list%) DO (
CALL :FUNC %%n rtn
IF !rtn! == 0 (
GOTO DONE
)
)
ECHO rtn is: %rtn%
: DONE
PAUSE
GOTO :eof
REM %1 is an in parameter
REM %2 is an out parameter
: FUNC
SETLOCAL EnableDelayedExpansion
SET var=%1
EndLocal & SET %2=%var% & GOTO :eof