我一直把头撞在桌子上,最近的一次仍然不能工作。我正试着让这件事起作用。
$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将不能使用格式-*选项。请帮帮忙。
发布于 2015-11-10 22:50:31
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
}
}https://stackoverflow.com/questions/33640939
复制相似问题