about_Output_Streams

简短说明

介绍了 PowerShell 中的输出流的可用性和用途。

长说明

PowerShell 提供了多个输出流。 这些流为不同类型的消息提供了通道。 你可以使用关联的 cmdlet 或重定向写入到这些流。 有关重定向的详细信息,请参阅 about_Redirection

PowerShell 支持以下输出流。

流编号 说明 已引入的版本 写入 Cmdlet
1 Success PowerShell 2.0 Write-Output
2 Error PowerShell 2.0 Write-Error
3 Warning PowerShell 2.0 Write-Warning
4 Verbose PowerShell 2.0 Write-Verbose
5 Debug PowerShell 2.0 Write-Debug
6 Information PowerShell 5.0 Write-Information
不适用 Progress PowerShell 2.0 Write-Progress

注意

Progress 流不支持重定向。

Success 流

Success 流是正常成功结果的默认流。 使用 Write-Output cmdlet 将对象显式写入此流。 此流用于通过 PowerShell 管道传递对象。 Success 流连接到原生应用程序的 stdout 流。

Error 流

Error 流是错误结果的默认流。 可以使用 Write-Error cmdlet 显式写入到此流。 Error 流连接到原生应用程序的 stderr 流。 大多数情况下,这些错误会终止执行管道。 写入到此流的 Error 也会添加到 $Error 自动变量。 有关详细信息,请参阅 about_Automatic_Variables

Warning 流

Warning 流适用于严重性低于写入到 Error 流的错误的错误状况。 正常情况下,这些警告不会终止执行。 Warning 不会写入到 $Error 自动变量。 可以使用 Write-Warning cmdlet 显式写入到此流。

Verbose 流

Verbose 流适用于当以交互方式或通过脚本运行命令时帮助用户对命令进行故障排除的消息。 可以使用 Write-Verbose cmdlet 显式将消息写入到此流。 许多 cmdlet 会提供详细输出,这对于了解 cmdlet 的内部工作原理非常有用。 仅当使用 -Verbose 通用参数时才会输出详细消息。 有关详细信息,请参阅 about_CommonParameters

Debug 流

Debug 流用于可帮助脚本编写者了解代码失败原因的消息。 可以使用 Write-Debug cmdlet 显式写入到此流。 仅当使用 -Debug 通用参数时才会输出调试消息。 有关详细信息,请参阅 about_CommonParameters

Debug 消息更适合脚本和 cmdlet 开发人员,而不是最终用户。 这些调试消息可以包含深度故障排除所需的内部详细信息。

Information 流

Information 流旨在提供可帮助用户了解脚本正在执行的操作的消息。 开发人员也可以将其用作附加流,用来通过 PowerShell 传递信息。 开发人员可以标记流数据并对该流进行特殊处理。 可以使用 Write-Information cmdlet 显式写入到此流。

Write-Host 还会写入到 Information 流。 这些 cmdlet 之间的区别在于,除非重定向 Information 流,否则 Write-Host 还会写入到主机控制台。 Write-Information 只会写入到 Information 流。

Progress 流

Progress 流用于长时间运行的命令和脚本的进度传达消息。 可以使用 Write-Progress cmdlet 显式将消息写入到此流。 Progress 流不支持重定向。

另请参阅