0

我正在尝试读取日志文件的最后一行并将其解析为特定的信息。日志文件是 .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
}

但这不会输出任何东西。

谢谢。

4

1 回答 1

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
}
于 2013-07-10T16:15:32.203 回答