"The syntax of the command (arithm expression) is incorrect" 嵌套 "IF" 语句批量
"The syntax of the command (arithm expression) is incorrect" in nested "IF" statement in batch
我正在写批处理文件,遇到了问题。我需要在批处理脚本的 "AND" 语句中创建 "OR" 语句。
这是我的代码:
@echo off
set /p a="a="
set /p b="b="
if "%a%" == "5" (
if "%b%" == "8" (
set /a "c=%a%*%b%"
goto :win
)
if "%b%" == "2"(
set /a "c=%a%+%b%"
goto :win
)
)
goto :fail
:win
echo %c%
goto :exit
:fail
echo U'r not a magician!
:exit
pause
问题是它只有在没有第二个嵌套 "IF" 表达式的情况下才能正常工作,但我需要获得两个结果的可能性。
当您在 "2"
和 (
之间插入 SPACE
时,您的代码可以正常工作。
引起问题的行是:
if "%b%" == "2"(
要修复,请将代码更改为:
if "%b%" == "2" (
现在您已经接受了您的答案,我想提一下您的代码似乎 OTT,因为您已经知道接受的参数以及您将如何处理它们。 (其实不需要算术运算)。此结构将以相同的方式运行:
@Echo Off
Set/P "a=a="
Set/P "b=b="
Set "c="
If "%a%][%b%"=="5][8" Set "c=40"
If "%a%][%b%"=="5][2" Set "c=7"
If Defined c (Echo=%c%) Else (Echo=U'r not a magician!)
Pause
我正在写批处理文件,遇到了问题。我需要在批处理脚本的 "AND" 语句中创建 "OR" 语句。 这是我的代码:
@echo off
set /p a="a="
set /p b="b="
if "%a%" == "5" (
if "%b%" == "8" (
set /a "c=%a%*%b%"
goto :win
)
if "%b%" == "2"(
set /a "c=%a%+%b%"
goto :win
)
)
goto :fail
:win
echo %c%
goto :exit
:fail
echo U'r not a magician!
:exit
pause
问题是它只有在没有第二个嵌套 "IF" 表达式的情况下才能正常工作,但我需要获得两个结果的可能性。
当您在 "2"
和 (
之间插入 SPACE
时,您的代码可以正常工作。
引起问题的行是:
if "%b%" == "2"(
要修复,请将代码更改为:
if "%b%" == "2" (
现在您已经接受了您的答案,我想提一下您的代码似乎 OTT,因为您已经知道接受的参数以及您将如何处理它们。 (其实不需要算术运算)。此结构将以相同的方式运行:
@Echo Off
Set/P "a=a="
Set/P "b=b="
Set "c="
If "%a%][%b%"=="5][8" Set "c=40"
If "%a%][%b%"=="5][2" Set "c=7"
If Defined c (Echo=%c%) Else (Echo=U'r not a magician!)
Pause