У меня есть пакетный файл с определением функции в конце. Я знаю, что функция является проблемой, потому что ошибка возвращается, когда она достигает любого вызова функции или самого определения. Я получаю сообщение об ошибке: the syntax of the command is incorrect.
Я проверил гнезда круглых скобок на наличие ошибок, но безрезультатно. Может ли пакет разрешить мне запрашивать if defined
заявления в отношении аргументов и вызывать функцию внутри себя?Параметрические аргументы и итерация внутри функции
Кроме этого, я не могу понять ошибку.
rem Functions.
:checkLvl
if "%~1" EQU "%~2" (
set counter=0
if defined %~3 echo %~3
if defined %~4 echo 1: %~4 &&set counter=1
if defined %~5 echo 2: %~5 &&set counter=2
if defined %~6 echo 3: %~6 &&set counter=3
if defined %~7 echo 4: %~7 &&set counter=4
if defined %~4 (
set /p checkChoice=
if defined !checkChoice! (
if !checkChoice! GTR 0 (
if !checkChoice! LEQ !counter! (
set checkChoice=!checkChoice!
) else (
echo Enter a value below or equal to !counter! and greater than 0.
set checkChoice=null
call:checkLvl %~1 %~2 %~3 %~4 %~5 %~6 %~7
)
) else (
echo Enter a proper value.
set checkChoice=null
call:checkLvl %~1 %~2 %~3 %~4 %~5 %~6 %~7
)
) else (
echo Enter a value (1-!counter!).
set checkChoice=null
call:checkLvl %~1 %~2 %~3 %~4 %~5 %~6 %~7
)
)
set returnCheck=true
) else (set returnCheck=false)
goto:eof
Что вы пытаетесь выполнить с помощью этой функции? Знание вашей цели поможет нам понять ваш код. Также вы передаете имена переменных для параметров? Причина, о которой я прошу, состоит в том, что команда 'defined' может только проверять, определена ли переменная, а не параметр. –
@ DavidRuhmann Цель состоит в том, чтобы проверить, равна ли любая предоставленная переменная другому предоставленному, и, таким образом, отбросить все переменные после этого, затем пользователь выбирает один из вариантов, выбранных из эхо-сигналов. – cygorx