我试图读取日志文件的最后一行并解析它以获取特定信息。日志文件是.csv,我需要第三个字段中的数字。
while (1)
{
Get-Content -Path C:\Users\alk6842\Desktop\logss.txt -Tail 1 -Wait | Foreach {($_ -split ',',4)[2]} | Foreach {($_ -split ' ',3)[1]}
}
这可以将它放到屏幕上,但是我想将数字存储在变量中或作为数组中的元素存储,以便我可以使用它。我试过了
while (1)
{
$a = Get-Content -Path C:\Users\alk6842\Desktop\logss.txt -Tail 1 -Wait | Foreach {($_ -split ',',4)[2]} | Foreach {($_ -split ' ',3)[1]}
$a
}
但这不会输出任何内容。
感谢。
答案 0 :(得分:1)
为什么使用-Tail 1 -Wait
选项?这意味着管道永远不会完成,如果管道没有完成,它将永远分配给$a
。
如果您要处理它并使用-Wait
,请在Foreach-object
块内处理:
Get-Content -Path C:\Users\alk6842\Desktop\logss.txt -Tail 1 -Wait |
ForEach-Object {
$first = ($_ -split ',',4)[2];
$second = ($_ -split ' ',3)[1]
#do whatever processing you want
}