Как я могу добавить несколько, если еще условия для выбора параметра? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть следующее значение для параметра выбора:

Имя: Параметр
Выбор:

  • Test1
  • Test2
  • Test3

и пакетная команда Execute windows:

if (%Param% == "Test1") (
echo "1"
) else if (%Param% == "Test2") (
echo "2"
) else (
echo "3"
) ---is not working

if (%Param% == "Test1") (
echo "1"
) else ( if (%Param% == "Test2") (
echo "2") else (
echo "3"
)
) ---is not working

Ответы [ 2 ]

0 голосов
/ 27 марта 2019
set "Param=Test2"

if "%Param%" == "Test1" (
    echo "1"
) else if "%Param%" == "Test2" (
    echo "2"
) else (
    echo "3"
)

Почти было в первом примере. Вы не заключаете сравнение для проверки между ( и ) в пакетном файле.

Сравнения буквальны, поэтому то, что с одной стороны, должно совпадать с другой. Это включает в себя двойные кавычки. Таким образом, переменные без кавычек могут потребовать их например, чтобы соответствовать "%Param%" == "Test1". %Param% == "Test1" никогда не совпадет в приведенном выше примере значение %Param% не имеет двойных кавычек.

0 голосов
/ 26 марта 2019

Ваш фиксированный командный файл должен выглядеть следующим образом:

if "%Param%" == "Test1" (
    echo "1"
) else (
    if "%Param%" == "Test2" (
        echo "2"
    ) else (
        echo "3"
    )
)

if "%Param%" == "Test1" (
    echo "1"
) else (
    if "%Param%" == "Test2" (
        echo "2"
    ) else (
        echo "3"
    )
)

так что ... эти два if оператора, если они развернуты, равны точно , то же самое, не знаете, что вы хотите сделать.

Обратите внимание, что:

  • Круглые скобки (()) и двойные кавычки ("") были включены в сравнение , поэтому я удалил их и заключил в кавычки обе строки.
  • Я также расширил ваши if высказывания, чтобы прояснить их, и вы увидели - они были одинаковыми.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...