У меня есть командный файл, который имеет несколько процедур. Примеры
:checkFileExists
if not exist %1\%2 (
echo %2 does not exist under %1
set returnValue=FAIL
exit /b 1
)
exit /b 0
:checkPortNumber
if %1 LSS 1024 (
port number should be greater than 1024 and less than 65535
set returnValue=FAIL
exit /b 1
)
... other checks for port number
exit /b 0
... main code..
set returnValue=OK
call :checkFileExists c:\tmp
echo %returnValue%
call :checkFileExists c:\tmp2
echo %returnValue%
call :checkPortNumber 89
echo %returnValue%
c:\tmp - это просто пример, и он существует. мое возвращаемое значение правильно отображается как ОК. c:\tmp2 не существует, и мое returnValue правильно отображается как FAIL.
Я ожидаю, что checkPortNumber не пройдёт тест, но returnValue всегда имеет значение OK. Я попытался с setlocal enableDelayedExpansion также и нет. Есть что-то, чего мне не хватает?