Как сказал Мат, плохая идея использовать скобки в операторах if.Лучше использовать кавычки, поскольку они предотвращают проблемы со многими специальными символами, такими как пробелы, <>&|()
в содержимом% n
Вы также можете получить проблемы с операторами вызова, если в любой переменной a )
.
Вы можете решить эту проблему с отложенным расширением.
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
)
)