Нужна помощь в возврате «1», «2» или «3» в выражении switch - PullRequest
0 голосов
/ 25 июня 2019

Я создаю инструкцию Switch через PowerShell. У меня возникают проблемы при запуске этого кода:

        ps c:\

                  switch((healthcheck)) {
'critical' {1}
'warning'  {2}
'healthy'  {3}
default    {999}  # not reading critical(1), warning(2), or healthy(3)}

выход: 999


Кажется, что при запуске (проверка здоровья) он не может найти "критическое состояние, состояние или предупреждение", которое выглядит следующим образом:

ps c: \ healthcheck


вывод:

ResponseType Описание Сообщение
------------ ----------- -------
Критическая проблема с базой данных Произошла ошибка при подключении к базе данных .........


****** URL, который я использую в функции (healthcheck), обновляется каждый раз, давая критические, предупреждающие или исправные сообщения. Моя цель - перевести критическое, предупреждающее или исправное значение к ==== 1, 2 или 3!

Спасибо.

Ответы [ 3 ]

0 голосов
/ 26 июня 2019

Если ваша функция healthcheck возвращает строку с возможными значениями critical, warning или healthy, вы можете использовать оператор Switch вместо набора if{..}, elseif{..}, else{..} тесты:

switch((healthcheck)) {
    'critical' {1}
    'warning'  {2}
    'healthy'  {3}
    default    {999}  # just in case the function returns something other than you expect..
}

Если, однако, ваш вопрос заключается в том, как проверить результаты Invoke-RestMethod, я предлагаю вам отредактировать свой вопрос, чтобы отразить это.

0 голосов
/ 26 июня 2019

Вздох. Сначала я подумал, что Healthcheck возвращает текст ...

function healthcheck {
  # [pscustomobject]@{ResponseType='Critical'}
  # [pscustomobject]@{ResponseType='Warning'}
  [pscustomobject]@{ResponseType='Nothing'}
}

switch ((healthcheck).responsetype) {
  'critical' {1}
  'warning'  {2}
  'healthy'  {3}
  default    {999}  
}
0 голосов
/ 25 июня 2019

Если THEN не выполняется, это означает, что условие в IF не равно TRUE . Так что измените что-то вроде:

result = 0
if (value === "warning") {
   result = 1
} else {
   result = 2
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...