gpt4 book ai didi

powershell - 为什么 powershell 会重新排列我的输出?

转载 作者:行者123 更新时间:2023-12-04 17:07:35 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Is there a way to force powershell -Export-CSV cmdlet to maintain a specific column order?

(2 个回答)


4年前关闭。




我构建了以下 CustomObject在我的函数中

    New-Object -Type PSCustomObject -Property @{
Computername = $_
PowerShellVersion = $result[0]
dotNetVersion = $result[1]
sqlnacli = $result[2]
redistributable = $result[3]
}

但是输出是这样的:
PowerShellVersion Computername redistributable sqlnacli dotNetVersion
----------------- ------------ --------------- -------- -------------
3+ OK SERVERNAME NOT OK NOT OK NOT OK

为什么 PowerShell 会重新排列我的对象的顺序,以及如何强制它按照我想要的顺序排列?

最佳答案

哈希表不是按定义排序的。如果你有 PowerShell v3.0 或更新版本,你可以使用 [Ordered]哈希表的属性:

New-Object PSCustomObject -Property ([Ordered] @{
Computername = $_
PowerShellVersion = $result[0]
dotNetVersion = $result[1]
sqlnacli = $result[2]
redistributable = $result[3]
})

在 PowerShell v3+ 中,您也可以只使用 [PSCustomObject]类型加速器:
[PSCustomObject] @{
Computername = $_
PowerShellVersion = $result[0]
dotNetVersion = $result[1]
sqlnacli = $result[2]
redistributable = $result[3]
}

如果您需要 PowerShell 版本 2 兼容性,那么您可以使用
New-Object PSObject -Property @{
Computername = $_
PowerShellVersion = $result[0]
dotNetVersion = $result[1]
sqlnacli = $result[2]
redistributable = $result[3]
} | Select-Object Computername,PowerShellVersion,dotNetVersion,sqlnacli,redistributable

这种方法的缺点是如果你添加属性,你必须记住将它们添加到 Select-Object .

另一种 PowerShell v2 或更早版本是输出某些内容(例如,空字符串),然后使用 Select-Object准确创建您想要的自定义属性:
$obj = $_
"" | Select-Object `
@{Name = "Computername"; Expression = {$obj}},
@{Name = "PowerShellVersion"; Expression = {$result[0]}},
@{Name = "dotNetVersion"; Expression = {$result[1]}},
@{Name = "sqlnacli"; Expression = {$result[2]}},
@{Name = "redistributable"; Expression = {$result[3]}}

这里唯一的(次要)缺点是 $_Select-Object指从中选择属性的前一个对象(因此 $obj = $_ 作为第一行,以保留值)。

关于powershell - 为什么 powershell 会重新排列我的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42300854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com