Powershell 前景色
Powershell ForeGround Color
为此,我一直在用头撞桌子,但我最接近的结果仍然无法正常工作。我正在努力让它发挥作用。
$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-* 选项。请帮忙。
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
}
}
为此,我一直在用头撞桌子,但我最接近的结果仍然无法正常工作。我正在努力让它发挥作用。
$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-* 选项。请帮忙。
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
}
}