问题描述
我是Powershell脚本的新手,并且受命根据某些日志文件中的错误创建一些警报。这些只是来自定制应用程序的日志。
我当前的代码是
`$OutputFile3 = (Get-Location).Path + ".\Results.txt"
$Sourcefolder= "C:\Users\dewana\Documents\Test\"
$Targetfolder= "C:\Users\dewana\Documents\Test\Test3"
Get-ChildItem -Path $Sourcefolder -Recurse|
Where-Object {
$_.LastWriteTime -gt [datetime]::Now.AddMinutes(-5)
}| copy-Item -Destination $Targetfolder
$Testing5 = Get-Content -Tail -1 -Path "C:\Users\dewana\Documents\Test\Test3\*.txt" | Where-Object
{ $_.Contains("errors") }
Remove-Item $OutputFile3
New-Item $OutputFile3 -ItemType file
try
{
$stream = [System.IO.StreamWriter] $OutputFile3
$stream.WriteLine('clientID 1111')
$stream.WriteLine('SEV 1')
$stream.WriteLine('Issue with this process')
}
finally
{
$stream.close()
}`
我正在努力的是
$Testing5 = Get-Content -Tail -1 -Path "C:\Users\dewana\Documents\Test\Test3\*.txt" | Where-Object { $_.Contains("errors") }
我正在尝试在日志文件中存储包含单词error的最新字符串。我想使用存储的字符串创建if语句,以说明$ Testing5是否为分配给自定义文本文件的错误赋予了新的值。
我似乎无法找出为什么get-content无法与where-object合作
解决方法
我唯一看到的问题是您的Where-Object
代码块在下一行。
Get-Content -Tail -1 -Path $tempfile | Where-Object
{ $_.Contains("errors") }
如果您在管道处分开就可以了。
Get-Content -Tail -1 -Path $tempfile |
Where-Object { $_.Contains("errors") }