将指定的对象写入管道。 如果 Write-Output 是管道中的最后一个命令,则对象将显示在控制台中。

Write-Output 将对象发送到主管道,也称为 成功流 。 若要将错误对象发送到错误流,请使用 Write-Error

此 cmdlet 通常在脚本中使用,以在控制台上显示字符串和其他对象。 的 Write-Output 内置别名之一是 echo ,类似于使用 echo 的其他 shell。 默认行为是在管道末尾显示输出。 在 PowerShell 中,通常不需要在默认显示输出的实例中使用 cmdlet。 例如, Get-Process | Write-Output 等效于 Get-Process 。 或者, echo "Home directory: $HOME" 可以编写 。 "Home directory: $HOME"

默认情况下, Write-Output 枚举集合中的 对象。 但是, Write-Output 还可以将集合作为具有 NoEnumerate 参数的单个对象向下传递。

示例 1:获取对象并将其写入控制台

在此示例中,cmdlet 的结果 Get-Process 存储在 变量中 $P 。 cmdlet Write-Output 在 控制台中 $P 显示进程对象。

$P = Get-Process
Write-Output $P

示例 2:将输出传递到另一个 cmdlet

此命令通过管道将“测试输出”字符串传递给 Get-Member cmdlet,该 cmdlet 显示 System.String 类的成员,证明该字符串是沿管道传递的。

Write-Output "test output" | Get-Member

示例 3:禁止输出中的枚举

此命令添加 NoEnumerate 参数,以通过管道将集合或数组视为单个对象。

Write-Output 1,2,3 | Measure-Object
Count    : 3
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count    : 1

-InputObject

指定要通过管道向下发送的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。

Type:PSObject[] Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

-NoEnumerate

默认情况下, Write-Output cmdlet 始终枚举其输出。 NoEnumerate 参数禁止默认行为,并阻止Write-Output枚举输出。 如果命令包装在括号中, 则 NoEnumerate 参数不起作用,因为括号是强制枚举。 例如, (Write-Output 1,2,3) 仍枚举数组。

NoEnumerate 参数仅在管道中有用。 尝试在控制台中查看 NoEnumerate 的影响是有问题的,因为 PowerShell 会添加到 Out-Default 每个命令行的末尾,从而导致枚举。 但是,如果通过管道 Write-Output -NoEnumerate 连接到另一个 cmdlet,则下游 cmdlet 将接收集合对象,而不是集合的枚举项。

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

PSObject

可以通过管道将对象传递给此 cmdlet。

PSObject

此 cmdlet 返回作为输入提交的对象。

PowerShell 包含以下别名 Write-Output

  • 所有平台:

  • Windows:

  • write
  •