最後に関数定義を含むバッチ ファイルがあります。関数または定義自体への呼び出しに達するとエラーが返されるため、関数が問題であることは事実です。エラーが表示されます:the syntax of the command is incorrect.
括弧のネストにエラーがないかチェックしましたが、役に立ちませんでした。Batchif 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