将值附加到 Powershell 对象
Append values to Powershell object
我有一个 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
...
使用PS自定义对象:
$values = 1..10 | % {
[pscustomobject]@{ col1=1; col2=10+$_; Type="New" }
}
您想要的输出是对象的列表,而不是单个对象。您可以通过在循环内创建对象来生成它。 已经向您展示了一种方法(使用类型加速器 [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 = ...
) 来捕获对象列表。
我有一个 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 ...
使用PS自定义对象:
$values = 1..10 | % {
[pscustomobject]@{ col1=1; col2=10+$_; Type="New" }
}
您想要的输出是对象的列表,而不是单个对象。您可以通过在循环内创建对象来生成它。 [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 = ...
) 来捕获对象列表。