我有一个PowerShell脚本监视日志文件,过滤掉有趣的位,然后在写入文件时将这些位呈现给我。工作奇妙。感兴趣的是:
get-content "$logFile" -wait | where { select-string $searchTerm -inp $_ }
现在我想得到幻想!
我希望每次遇到特定术语时都会更改字体颜色。我可以很容易地设置字体颜色,但是如何使用上述语句即时进行?
编辑:想出来,但无法发布8小时的答案。明天会上传。
答案 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}