根據定義不排序散列表。如果您有PowerShell的3.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 = $_
作爲第一行以保留該值)。
它是一個重複的確,但我認爲這個問題的答案是更高質量的,也是問題的標題是更普遍的 – SimonS