0

我试图从许多文件中的许多模式之一开始查找行(日志解析)。
有没有比以下更好的解决方案:

Get-ChildItem -Filter *DBLog.txt | ForEach-Object {
    $name = $_.Name
    Get-Content -Path $_.FullName | 
    Select-String -Pattern '^Msg*' |
    Select-Object @{Name='File Name'; Expression={$name}}, LineNumber, Line
} |
Out-GridView

不幸的是,上面的脚本只搜索一种模式,并且使用Where-Object我没有找到该模式的行号。

4

1 回答 1

0

看起来我让它变得不必要地复杂了;)

Select-String -Path *DBLog.txt -Pattern '^Msg|^Warn' |
Select-Object FileName, LineNumber, Line |
Out-GridView

但我还有一个问题……你如何添加额外的一行?我要查找的内容(SQL Server 错误)用 2 行编写:

Msg 208, Level 16, State 1, Server LOCALHOST, Line 9
Invalid object name ...</p>

Select-String只会返回第一行

于 2020-04-28T06:49:33.957 回答