【问题标题】:Highlight with color to sql output in PowerShell在 PowerShell 中用颜色突出显示到 sql 输出
【发布时间】:2017-11-12 00:52:09
【问题描述】:

我在 PowerShell 中编写了代码,我在其中调用 SQL 命令 xp_cmdshell 'cluster group'。

这给出了如下所示的输出。

output
Listing status for all available resource groups:



Group                Node            Status

-------------------- --------------- ------

Cluster Group        ldndsm05330n01  Online

Available Storage    ldndsm05330n01  Online

LDNDCM05330V05A      ldndsm05330n01  Online

LDNDCM05330V05B      ldndsm05330n01  Offline

NULL

我只想,只要它在线,它应该以绿色突出显示,当它离线时,它应该以红色突出显示。

下面是我的 PowerShell 命令。

function Invoke-SQL3 {
    param(
        [string] $dataSource = "$Server",
        [string] $database = "msdb",
        [string] $sqlCommand = $("xp_cmdshell 'cluster group'")

【问题讨论】:

标签: sql-server powershell powershell-2.0


【解决方案1】:

您可以将 Function Invoke-SQL3 的输出存储在一个变量中

$output = Invoke-SQL3

然后你会收到一个字符串、一个哈希表或一个对象列表(取决于函数的输出格式)。

Foreach 语句中,一个接一个地遍历输出的所有行或对象,将其存储在一个变量中,然后如果在线则显示绿色,如果离线则显示红色,即:

if($line[$i].contains("Online")){
    Write-Host -foreground Green $line[$i]
} elseif ($line[$i].contains("Offline")) {
    Write-Host -Foreground Red $line[$i]
}

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2010-12-12
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多