颜色编码获取内容结果

时间:2011-05-25 23:32:29

标签: powershell powershell-v2.0

我有一个PowerShell脚本监视日志文件,过滤掉有趣的位,然后在写入文件时将这些位呈现给我。工作奇妙。感兴趣的是:

get-content "$logFile" -wait | where { select-string $searchTerm -inp $_ }

现在我想得到幻想!

我希望每次遇到特定术语时都会更改字体颜色。我可以很容易地设置字体颜色,但是如何使用上述语句即时进行?

编辑:想出来,但无法发布8小时的答案。明天会上传。

2 个答案:

答案 0 :(得分:8)

如果你正在寻找提供选择性颜色编码的东西,那么试试这样的事情。

首先,设置辅助函数以选择合适的颜色:

function Get-LogColor {
    Param([Parameter(Position=0)]
    [String]$LogEntry)

    process {
        if ($LogEntry.Contains("DEBUG")) {Return "Green"}
        elseif ($LogEntry.Contains("WARN")) {Return "Yellow"}
        elseif ($LogEntry.Contains("ERROR")) {Return "Red"}
        else {Return "White"}
    }
}

然后执行如下所示的行:

gc -wait $logFile | ForEach {Write-Host -ForegroundColor (Get-LogColor $_) $_}

答案 1 :(得分:7)

尝试

Get-Content $logFile -Wait |
  Select-String $searchTerm | 
  ForEach {write-host -ForegroundColor red $_.line}