0

ログ ファイルの最後の行を読み込んで、特定の情報を解析しようとしています。ログ ファイルは .csv で、3 番目のフィールドにある番号が必要です。

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 に答える