") было неожиданным в это время."работает вложенный IF в пакетном режиме - PullRequest
0 голосов
/ 21 октября 2011

Не уверен, почему это происходит.Пробовал смотреть ... выглядит хорошо, я думаю.

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
    )
)

1 Ответ

2 голосов
/ 21 октября 2011

Как сказал Мат, плохая идея использовать скобки в операторах 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
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...