我一直在我的头上撞到桌子上,最接近我仍然没有工作。我想让这个工作。
$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- *选项。请帮忙。
答案 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
}
}