我正在学习PowerShell和我强烈阅读的大量文章不鼓励使用写主机告诉我这是“坏习惯”,几乎总是输出可以显示在其他方式。PowerShell:写输出只写一个对象
因此,我正在采取建议,并尽量避免使用写主机。我发现的一个建议是使用写输出。据我所知,这将所有内容放在一个管道中,输出在脚本的末尾执行(?)。
但是,我有问题输出我想要的。这一实例说明问题:
$properties = @{'OSBuild'="910ef01.2.8779";
'OSVersion'="CustomOS 3";
'BIOSSerial'="A5FT-XT2H-5A4B-X9NM"}
$object = New-Object –TypeName PSObject –Prop $properties
Write-output $object
$properties = @{'Site'="SQL site";
'Server'="SQL Server";
'Database'="SQL Database"}
$object = New-Object –TypeName PSObject –Prop $properties
Write-Output $object
这样,我得到了显示数据的操作系统的第一个对象的一个不错的输出,但包含SQL数据的第二对象从不显示。我尝试重命名变量名称和其他一些不同的东西,但没有运气。
在对此问题进行故障诊断时,我发现类似的问题,建议使用写主机替换写入输出。这让我非常困惑。为什么有些人强烈地沮丧写作主持人,而其他人鼓励呢?
我如何以一种时尚的方式输出这两个对象?我不完全了解写输出的管道机制。
我试过这个在Powershell v4上,它们都以相同的方式输出,作为3列表。 – Sean
@sean行,感谢您的信息。我使用的是PowerShell v5,它不适合我。很烦人。 – Scopperloit
'。\ ScriptName.ps1 |格式列表' – PetSerAl