Powershell函数输出集合

时间:2018-02-04 11:25:46

标签: powershell

我有函数,每个函数都返回一个返回码。 我想输出以下内容:

function ReturnCode
-------- ----------
 wrapkey         255
 mapkey          233
 delkey            0

我试过了:

$Outarray = @()

$Outarray += $_.SetProperty("WrapKey") | select "WrapKey", ReturnCode 
$Outarray += $_.SetProperty("MapKey") | select "MapKey", ReturnCode

$Outarray | Format-Table

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您正在寻找计算属性,其语法如下:

@{Name='Name of resulting property';Expression={<# actual value calculation goes here#>}}

因此,对于您想要的结果(每个SetProperty()调用一个对象),就像这样:

$_.SetProperty('WrapKey') | Select-Object @{Name='Function';Expression={'WrapKey'}},@{Name='ReturnCode';Expression={$_}}

然后重复MapKeyDelKey。由于只有属性名称不同,您可以将它们放入循环中:

$OutputCodes = foreach($Name in 'WrapKey','MapKey','DelKey'){
    $_ | Select-Object @{Name='Function';Expression={$Name}},@{Name='ReturnCode';Expression={$_.SetProperty($Name)}}
}