如何在Powershell脚本中添加逻辑?

时间:2018-11-20 14:53:44

标签: powershell

需要帮助从输出中整理数据,当ALL OKSTATE时,我只想显示一个显示RUNNING的输出,如果{{ 1}}是NOT OK(或其他任何字符串)。

我该如何实现?

STATE

输出:

Faulted

1 个答案:

答案 0 :(得分:1)

仅根据您的输出,我想这样的事情就是您想要的吗?

$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