不确定为什么会这样。试着看起来......我认为看起来很好。
IF not (%5) == () (
call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
IF not (%4) == () (
call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
) ELSE (
call %antPath% -f %buildFile% help
)
)
答案 0 :(得分:2)
就像Mat所说,在if语句中使用括号是个坏主意。 更好的是使用引号,因为它们可以防止许多特殊字符出现问题,例如%n
内容中的空格<>&|()
如果)
中有任何变量,您的调用语句也会出现问题。
你可以通过延迟扩展解决这个问题。
setlocal EnableDelayedExpansion
IF not "%5" == "" (
call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
IF not "%4" == "" (
call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
) ELSE (
call !antPath! -f !buildFile! help
)
)