2017-09-22 13 views
0

나는파워 쉘 : 배관이 얻을 - 컨텐츠 객체의 배열에 -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 $_ } } 

이 로그 파일은 모든 아마 100 라인 이상을 포함하지 않습니다 사용하여 로그 파일을 끌리는 PowerShell 스크립트를 가지고 앱 중 하나와 관련이있다. 15 가지 서비스. 지금은 로그 파일에서 위의 꼬리를 사용하여 화면에 100 줄을 출력합니다.

하지만 실제로하고 싶은 것은 15 개의 행이있는 테이블을 표시하고 로그에서 새 줄을 가져 와서 로그에서 새 정보를 표시 할 때 테이블을 계속 업데이트하는 것입니다.

나는 그런 식의 예제를 검색해 보았지만 아무 것도 찾을 수 없었다. 그것은 가능하고 가능하다면, 그것에 관한 정보에 대한 링크를 고맙게 생각합니다.

+0

Im 정직하게 될 것입니다 ... 당신의 취하려고하는 것이 확실하지 않습니다 .... – 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

고마워 ... 내가 찾고 있었던 바로 그 것이다. –