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
此命令显示带有 NoNewline
参数的字符串“no 换行符测试”。
写入第二个字符串,但由于没有分隔字符串的换行符,它最终与第一个字符串位于同一行。
示例 2:写入控制台并包含分隔符
Write-Host (2,4,6,8,10,12) -Separator ", +2= "
2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12
此命令显示 2 到 12 的偶数。 Separator 参数用于 (逗号、空格、+
、、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
输出。 第一个参数与 InformationAction
Value 一起使用 Ignore
,以禁止输出到信息流。
第二个示例将命令的信息流重定向到 $null
变量,从而禁止它。
参数
-BackgroundColor
指定背景色。 没有默认值。 此参数的可接受值为:
- 黑色
- 深蓝色
- 深绿色
- 深青色
- 深红色
- 深洋红色
- 深黄色
- 灰色
- 深灰色
- 蓝色
- 绿色
- 青色
- 红色
- 洋红色
- 黄色
- 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
指定文本颜色。 没有默认值。 此参数的可接受值为:
- 黑色
- 深蓝色
- 深绿色
- 深青色
- 深红色
- 深洋红色
- 深黄色
- 灰色
- 深灰色
- 蓝色
- 绿色
- 青色
- 红色
- 洋红色
- 黄色
- 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 |
输入
可以通过管道将要写入的对象传递给主机。
输出
None
Write-Host
将对象发送到主机。 它不返回任何对象。 但是,主机会显示发送给它的 对象 Write-Host
。
备注
将集合写入主机时,集合的元素将打印在同一行上,用一个空格分隔。 这可以使用 Separator 参数重写。
非基元数据类型(如具有属性的对象)可能会导致意外结果,并且不提供有意义的输出。 例如,
Write-Host @{a = 1; b = 2}
将打印System.Collections.DictionaryEntry System.Collections.DictionaryEntry
到主机。