颜色编码获取内容结果

His*_*ess 8 powershell powershell-2.0

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

get-content "$logFile" -wait | where { select-string $searchTerm -inp $_ }
Run Code Online (Sandbox Code Playgroud)

现在我想得到幻想!

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

编辑:想出来,但不能发布8小时的答案.明天会上传.

Ste*_*nco 10

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

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

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"}
    }
}
Run Code Online (Sandbox Code Playgroud)

然后执行如下所示的行:

gc -wait $logFile | ForEach {Write-Host -ForegroundColor (Get-LogColor $_) $_}
Run Code Online (Sandbox Code Playgroud)


Dou*_*nke 7

尝试

Get-Content $logFile -Wait |
  Select-String $searchTerm | 
  ForEach {write-host -ForegroundColor red $_.line}
Run Code Online (Sandbox Code Playgroud)