我有一个PS对象,无法找到一种方法将值附加到我的对象。
$object = New-Object PSObject
Add-Member -InputObject $object -MemberType NoteProperty -Name Col1 -Value ""
Add-Member -InputObject $object -MemberType NoteProperty -Name Col2 -Value ""
Add-Member -InputObject $object -MemberType NoteProperty -Name Type -Value ""
1..10 |ForEach{
$src=$_
11..20 | ForEach{
$dst = $_
$object.Col1=$src
$object.Col2=$dst
$object.Type="New"
}
}
我希望我的结果像
col1 col2 Type ---- ---- ---- 1 11 New 1 12 New 1 13 New 1 14 New ...
答案 0 :(得分:1)
使用PS 自定义对象:
let views: [String:UIView] = ["view":aView]
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "...", options:[], metrics: metrics, views: views))
答案 1 :(得分:0)
您想要的输出是对象的列表,而不是单个对象。您可以通过在循环内创建对象来生成它。 @Burt_Harris已经向您展示了一种方法(使用类型加速器[PSCustomObject]
),但当然您也可以使用New-Object
到同一端:
$list = 1..10 | ForEach-Object {
$src = $_
11..20 | ForEach-Object {
$prop = @{
Col1 = $src
Col2 = $_
Type = 'New'
}
New-Object -Type PSObject -Property $prop
}
}
如果希望属性在输出中以特定顺序出现(仅限PowerShell v3和更新版本),请将属性哈希表创建为有序哈希表:
$prop = [ordered]@{
Col1 = $src
Col2 = $_
Type = 'New'
}
可以通过将管道输出分配给变量($list = ...
)来捕获对象列表。