在powershell 2.0中,如何在特定字符串模式附近输出额外的行?

在powershell 2.0中,如何在特定字符串模式附近输出额外的行?,powershell,powershell-2.0,Powershell,Powershell 2.0,我正在编写用于服务器日志监视的Powershell脚本。基本上,我需要查看日志文件并检查特定字符串模式旁边的日期 在下面的代码中,我只能找到字符串模式,但我需要在这个字符串模式附近多行代码 $fPath = "C:\temp\imlog.txt" Get-Content $fPath | Where-Object {$_.Contains('ORA-')} 日志的一个示例: ORA-03135:连接失去联系 2017年9月26日星期二12:49:29 ORA-01775:同义词循环链 2017

我正在编写用于服务器日志监视的Powershell脚本。基本上,我需要查看日志文件并检查特定字符串模式旁边的日期

在下面的代码中,我只能找到字符串模式,但我需要在这个字符串模式附近多行代码

$fPath = "C:\temp\imlog.txt"
Get-Content $fPath | Where-Object {$_.Contains('ORA-')}
日志的一个示例:

ORA-03135:连接失去联系

2017年9月26日星期二12:49:29

ORA-01775:同义词循环链

2017年9月30日星期六16:29:22

感谢您的帮助


谢谢

这要归功于@EBGreen和@Bill_Stewart

下面的脚本将完成此工作

#Define log file path
$fPath = "C:\temp\imlog.txt"

#Output Context near string pattern
Get-Content $fPath | Select-String -Patter 'ORA-' -Context 2 | Select -Last 1

感谢大家。

发布日志文件中的相关行。编辑您的问题以添加日志文件的示例。我不记得Select String在2.0中是否有-Context参数。如果它真的这样做了,那么这就行了。从获取帮助选择开始-String@EBGreen正确的选择字符串的-Context参数就是您要查找的参数。该参数在2.0中确实存在。多亏了@Bill_Stewart和EBGreen,问题现在解决了。