11

我有一个执行一些自动程序的Powershell脚本,我在每个程序的末尾使用“Write-Host”来告诉技术用户该步骤已完成,但我意识到有点难以阅读和跟踪所以, ¿ 有没有办法输出粗体文本?

先感谢您。

4

3 回答 3

12

只是措辞...
“ConvertFrom-MarkDown” cmdlet(包含在 PowerShell 6 及更高版本中)来看, 实际上存在粗体
文本:(使用默认的 PowerShell 配色方案)

('This is **Bold** text' | ConvertFrom-MarkDown -AsVt100EncodedString).VT100EncodedString

在此处输入图像描述

但这并不完全公平,因为在幕后,这是玩颜色的问题。知道默认的前景色是Gray并且White只是稍微明亮一点,因此看起来是Bold
意思是上面的语句类似于:

Write-Host 'This is ' -NoNewline; Write-Host -ForegroundColor White 'Bold ' -NoNewline; Write-Host 'Text'
于 2020-03-06T16:48:17.373 回答
6

也可以看看:

控制台虚拟终端序列

从 PowerShell 5.1 开始,PowerShell 控制台支持可用于定位和格式化控制台文本的 VT 转义序列。请注意,这

# Enable underline
$esc = [char]27
"$esc[4mOutput is now underlined!"

# Disable underline
$esc = [char]27
"$esc[0mReset"

或者正如已经指出的那样,使用 Write-Host,只需切换内联文本颜色以进行对比......

Write-Host -ForegroundColor gray 'This is not bold ' -NoNewline
Write-Host -ForegroundColor White 'This is Bold ' -NoNewline
Write-Host -ForegroundColor gray 'This is not bold'

...也就是说,如果您没有下载或无法下载和使用外部内容。

于 2020-03-06T22:56:05.603 回答
4

据我所知,这是不可能的,但您可以更改文本的前景色背景色。通过这种方式,您可以输出不同颜色的文本,以便突出显示错误或警告。


这将显示一个红色文本:

Write-Host "This text is red" -ForegroundColor red

这会在红色背景上显示蓝色文本:

Write-Host "This text is blue" -ForegroundColor blue -BackgroundColor red

更多信息: https ://evotec.xyz/powershell-how-to-format-powershell-write-host-with-multiple-colors/

于 2020-03-06T14:45:23.533 回答