相关疑难解决方法(0)

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
Run Code Online (Sandbox Code Playgroud)

这样,我可以很好地输出显示OS数据的第一个对象,但是永远不会显示包含SQL数据的第二个对象。我试过重命名变量名和其他很多东西,但是没有运气。

在对这个问题进行故障排除时,我发现了类似的问题,并提出了一些建议,就是只用写主机代替写输出。这让我很困惑。为什么有些人强烈劝阻写主机,而其他人却鼓励写主机?

以及如何准确地以时尚的方式输出这两个对象?我不完全了解写输出的流水线机制。

powershell

4
推荐指数
1
解决办法
1755
查看次数

标签 统计

powershell ×1