Write-Output
将指定的对象发送到管道中的下一个命令。 如果该命令是管道中的最后一个命令,则这些对象将在控制台中显示。
语法
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
说明
cmdlet 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
通过提供给 cmdlet 的集合枚举。 但是, Write-Output
也可用于将集合作为具有 NoEnumerate 参数的单个对象向下传递管道。
示例
示例 1:获取对象并将其写入控制台
$P = Get-Process
Write-Output $P
第一个命令获取计算机上运行的进程,并将其存储在 变量中 $P
。
第二个和第三个命令在 控制台上显示 中的 $P
进程对象。
示例 2:将输出传递到另一个 cmdlet
Write-Output "test output" | Get-Member
此命令通过管道将“测试输出”字符串传递给 Get-Member
cmdlet,该 cmdlet 显示 System.String 类的成员,证明该字符串是沿管道传递的。
示例 3:禁止输出中的枚举
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
此命令添加 NoEnumerate 参数,以通过管道将集合或数组视为单个对象。
参数
-InputObject
指定要通过管道向下发送的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEnumerate
默认情况下, Write-Output
cmdlet 始终枚举其输出。 NoEnumerate 参数禁止默认行为,并阻止Write-Output
枚举输出。 如果命令包装在括号中, 则 NoEnumerate 参数不起作用,因为括号是强制枚举。 例如, (Write-Output 1,2,3)
仍枚举数组。
注意
此开关仅适用于 PowerShell Core 6.2 及更新版本。 在旧版 PowerShell Core 上,即使使用此开关,集合仍会枚举。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将对象传递给 Write-Output
。
输出
Write-Output
返回作为输入提交的 对象。