Write-Host

将自定义的输出写入主机。

语法

Write-Host
     [[-Object] <Object>]
     [-NoNewline]
     [-Separator <Object>]
     [-ForegroundColor <ConsoleColor>]
     [-BackgroundColor <ConsoleColor>]
     [<CommonParameters>]

说明

cmdlet Write-Host 的主要用途是生成 for- (主机) 仅显示输出,例如打印彩色文本,例如在提示用户输入时与 Read-Host 一起。 Write-Host 使用 ToString () 方法编写输出。 相比之下,若要将数据输出到管道,请使用 Write-Output 或隐式输出。

可以使用 参数指定文本 ForegroundColor 颜色,也可以使用 参数指定背景色 BackgroundColor 。 Separator 参数允许你指定用于分隔显示对象的字符串。 特定结果取决于托管 PowerShell 的程序。

注意

从 Windows PowerShell 5.0 开始,Write-Host是一个包装器Write-Information,它允许你使用 Write-Host 向信息流发出输出。 这样就可以 捕获禁止 使用 Write-Host 写入的数据,同时保持向后兼容性。

首选项 $InformationPreference 变量和 InformationAction 通用参数不会影响 Write-Host 消息。 此规则的例外是 -InformationAction Ignore,它有效地抑制 Write-Host 输出。 (请参阅“示例 5”)

示例

示例 1:在不添加新行的情况下写入控制台

Write-Host "no newline test " -NoNewline
Write-Host "second string"

no newline test second string

此命令显示带有 参数的字符串“no 换行符测试”。NoNewline

写入第二个字符串,但由于没有分隔字符串的换行符,因此它最终与第一个字符串位于同一行。

示例 2:写入控制台并包含分隔符

Write-Host (2,4,6,8,10,12) -Separator ", +2= "

2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12

此命令显示介于 2 到 12 的偶数。 分隔符参数用于添加字符串 , +2= (逗号、空格、+2=空格) 。

示例 3:使用不同的文本和背景色进行书写

Write-Host (2,4,6,8,10,12) -Separator ", -> " -ForegroundColor DarkGreen -BackgroundColor White

2, -> 4, -> 6, -> 8, -> 10, -> 12

此命令显示介于 2 到 12 的偶数。 它使用 ForegroundColor 参数输出深绿色文本,并使用 BackgroundColor 参数显示白色背景。

示例 4:使用不同的文本和背景色进行书写

Write-Host "Red on white text." -ForegroundColor red -BackgroundColor white

Red on white text.

此命令显示字符串“白色文本上的红色”。文本为红色,由 ForegroundColor 参数定义。 背景为白色,由 BackgroundColor 参数定义。

示例 5:禁止 Write-Host 输出

# The following two statements can be used to effectively suppress output from Write-Host
Write-Host "I won't print" -InformationAction Ignore
Write-Host "I won't print" 6> $null

这些命令有效地抑制 cmdlet 的 Write-Host 输出。 第一个参数与 Value 一 InformationAction 起使用 Ignore ,以禁止输出到信息流。 第二个示例将命令的信息流重定向到 $null 变量,从而禁止显示该变量。 有关详细信息,请参阅 about_Output_Streams

参数

-BackgroundColor

指定背景色。 没有默认值。 此参数的可接受值为:

  • Black
  • DarkBlue
  • DarkGreen
  • DarkCyan
  • DarkRed
  • DarkMagenta
  • DarkYellow
  • Gray
  • DarkGray
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Yellow
  • White
Type:ConsoleColor
Accepted values:Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForegroundColor

指定文本颜色。 没有默认值。 此参数的可接受值为:

  • Black
  • DarkBlue
  • DarkGreen
  • DarkCyan
  • DarkRed
  • DarkMagenta
  • DarkYellow
  • Gray
  • DarkGray
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Yellow
  • White
Type:ConsoleColor
Accepted values:Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoNewline

输入对象的字符串表示形式连接在一起,形成输出。 在输出字符串之间不插入空格或换行符。 未在最后一个输出字符串之后添加换行符。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Object

要显示在主机中的对象。

Type:Object
Aliases:Msg, Message
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Separator

指定要在主机显示的对象之间插入的分隔符字符串。

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

Object

可以通过管道将要写入主机的对象传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。 它将对象发送到主机。 主机显示此 cmdlet 发送给它的对象。

备注

  • 将集合写入主机时,集合的元素将打印在同一行上,用一个空格分隔。 这可以使用 Separator 参数重写。

  • 非基元数据类型(例如具有属性的对象)可能会导致意外结果,并且无法提供有意义的输出。 例如, Write-Host @{a = 1; b = 2} 将打印 System.Collections.DictionaryEntry System.Collections.DictionaryEntry 到主机。