【发布时间】:2016-04-12 22:51:27
【问题描述】:
当对象以Write-Host 与Write-Output 显示与直接调用对象时,我对 PowerShell 如何处理对象的格式有点困惑。
我需要使用 Write-Host,因为当我在函数中调用 Write-Output 时,它会破坏我的代码。
但是当我使用 Write-Host 时,显示的数据不是我所期望的。我想在我直接调用它时看到我的对象(Write-Host 也一样)。
PS> $files = GetChildItem C:\
PS> $files # Or Write-Output $files
PS> Write-Host $files
PS> Write-Host $files |Format-Table
PS> $files | Format-Table | Write-Host
【问题讨论】:
-
Write-Host 不用于显示复杂对象。这就是 Write-Output 应该做的。
-
只是一个更正 Matt,Write-Output 用于将对象放在管道上以供下一个函数/cmdlet 使用。只有当到达管道的末端时,才会将任何内容返回给调用者......当从 PS 提示符调用时,主机使用返回的每个对象的 .ToString() 方法在控制台中显示,除非特别定义,否则默认为对象类型。
标签: powershell