Как добавить логику в скрипт powershell? - PullRequest
0 голосов
/ 20 ноября 2018

Нужна помощь в сортировке данных из моего вывода, я хочу показать только вывод, говорящий ALL OK, когда STATE равен RUNNING, и NOT OK, если STATE равно Faulted (или любой другойдругая строка).

Как мне этого добиться?

Invoke-Command -ComputerName XXXXX,XXXX -ScriptBlock { hastatus -sum; VXPRINT -VPl } -credential XXXXX

Вывод:

-- SYSTEM STATE
-- System               State                Frozen              

A  XXXXXXXXXXXXX        RUNNING              0                    
A  XXXXXXXXXXXXX        RUNNING              0   

1 Ответ

0 голосов
/ 20 ноября 2018

Просто после вашего вывода, я думаю, что-то вроде этого - то, что вы хотите?

$output = @"
-- SYSTEM STATE
-- System               State                Frozen              

A  XXXXXXXXXXXXX        RUNNING              0                    
A  XXXXXXXXXXXXX        RUNNING              0  
A  XXXXXXXXXXXXX        ANYTHINGBUTRUNNING   0 
"@

($output -split '\r?\n') | ForEach-Object {
    if ($_ -match '^[A-Z]\s+\w+') {
        $system = $matches[0]
        if ($_ -match '\bRUNNING\b') {
            "$system  ALL OK"
        }
        else {
            "$system  NOT OK"
        }
    }
}

В результате вывод консоли PowerShell будет:

A  XXXXXXXXXXXXX  ALL OK
A  XXXXXXXXXXXXX  ALL OK
A  XXXXXXXXXXXXX  NOT OK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...