Powershell ForeGround颜色

时间:2015-11-10 22:33:40

标签: powershell powershell-v2.0

我一直在我的头上撞到桌子上,最接近我仍然没有工作。我想让这个工作。

$test = Get-Service | sort Status | format-wide -Groupby Status -Column 4

$test | % {
  $line = $_.ToString()  <~~ even tried Out-String
  if ($_.status -eq "Running") {
    write-host $line -foregroundcolor red
  } elseif ($_.status -eq "Stopped") {
    write-host $line -foregroundcolor yellow
  } else {
    write-host $line 
  }
}

我试图保留我已经拥有的格式,但我愿意接受建议。我发现的Out-String不适用于format- *选项。请帮忙。

1 个答案:

答案 0 :(得分:2)

Format-* cmdlet通常应该是管道中的最后一个命令,不应该分配给变量。它们用于最终输出,不能在以后进行转换。它们不保留原始对象或其属性。

如果您刚刚删除了Format-Wide来电,它会使用以下颜色编写服务:

$test = Get-Service | sort Status

$test | % {
  $line = $_.ToString()  
  if ($_.status -eq "Running") {
    write-host $line -foregroundcolor red
  } elseif ($_.status -eq "Stopped") {
    write-host $line -foregroundcolor yellow
  } else {
    write-host $line 
  }
}