2017-09-22 22 views
0

を再描画し、私はこのログファイルPowerShellの:配管オブジェクトの配列を取得します - コンテンツ-waitと表示テーブル

Get-Content $logFile -wait | ForEach { if ($_.Contains("[OK]")){ Write-Host -ForegroundColor Green $_ } elseif ($_.Contains("[FAIL]")){ Write-Host -ForegroundColor Red $_ } elseif ($_.Contains("[INFO]")){ Write-Host -ForegroundColor Yellow $_ } else { Write-Host $_ } } 

を使用して、ログファイルをテールPowerShellスクリプトは、すべてのおそらく100行以上が含まれることはありません持っていますアプリの1つに関連しています。 15サービス。今はログファイルの上記のテールを使って100行を画面に出力しています。

しかし、私は実際には15行のテーブルを表示し、ログから新しい情報を表示するためにログから新しい行を取得したときにテーブルを継続的に更新するだけです。

私はそのような表を表示する例を検索しようとしましたが、何も見つかりませんでした。それは可能でもあり、そうであれば、私はそれに関するいくつかの情報へのリンクを感謝します。

+0

イム正直になるだろう...イムあなたがやろうとかわからない.... – ArcSet

+0

状況の変化に応じて、いくつかのステータス情報や変化を示す表。ステータス変更をテキスト行として表示するだけでなく、 –

答えて

0

メッセージを受け取るたびに、オブジェクトを作成して配列に保存することができます。テーブルを再出力するには、毎回ホストを行ごとに表示するか、ホスト全体をクリアしてオブジェクト全体を出力する必要があります。

$log = @() 
Get-Content $logFile -wait | 
    ForEach-Object { 
    switch ($_) { 
     {$_.Contains("[OK]")} { 
      $logentry = [pscustomobject]@{ 
       'Status' = 'Success' 
       'Message' = ($_ -split '\[OK\]')[-1] 
      } 
      $log += $logentry 
     } 
     {$_.Contains("[FAIL]")} { 
      $logentry = [pscustomobject]@{ 
       'Status' = 'Failure' 
       'Message' = ($_ -split '\[FAIL\]')[-1] 
      } 
      $log += $logentry 
     } 
     {$_.Contains("[INFO]")} { 
      $logentry = [pscustomobject]@{ 
       'Status' = 'Info' 
       'Message' = ($_ -split '\[INFO\]')[-1] 
      } 
      $log += $logentry 
     } 
     default { 
      $logentry = [pscustomobject]@{ 
       'Status' = 'Unknown' 
       'Message' = $_ 
      } 
      $log += $logentry 
     } 
    } 
    Clear-Host 
    foreach ($logentry in $log) { 
     switch ($logentry.Status) { 
      'Success' { Write-Host -ForegroundColor Green $logentry } 
      'Failure' { Write-Host -ForegroundColor Red $logentry } 
      'Info' { Write-Host -ForegroundColor Yellow $logentry } 
      default { Write-Host $logentry } 
     } 
    } 
} 

$log | Export-CSV C:\Example\path.csv -NoTypeInformation 
+0

ありがとう...それは私が探していたものです。 –

関連する問題