这是我的代码:
$a = @()
for ($i = 0; $i -lt 5; $i++)
{
$item = New-Object PSObject
$item | Add-Member -type NoteProperty -Name 'Col1' -Value 'data1'
$item | Add-Member -type NoteProperty -Name 'Col2' -Value 'data2'
$item | Add-Member -type NoteProperty -Name 'Col3' -Value 'data3'
$item | Add-Member -type NoteProperty -Name 'Col4' -Value 'data4'
$a += $item
}
通过这段代码,我能够得到如下结果:
Col1 Col2 Col3 Col4
---- ---- ---- ----
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
嗯,很好,但是如何更简单、更恰当地实现呢?有没有办法创建数组PsObject
maybe?
我在用着Powershell v4
.
您所做的事情没有任何问题,但是您可以利用一些优势。
The -PassThru
参数开启Add-Member
将返回对象本身,因此您可以链接它们:
$a = @()
for ($i = 0; $i -lt 5; $i++)
{
$item = New-Object PSObject |
Add-Member -type NoteProperty -Name 'Col1' -Value 'data1' -PassThru |
Add-Member -type NoteProperty -Name 'Col2' -Value 'data2' -PassThru |
Add-Member -type NoteProperty -Name 'Col3' -Value 'data3' -PassThru |
Add-Member -type NoteProperty -Name 'Col4' -Value 'data4' -PassThru
$a += $item
}
您可以提供一个[hashtable]
最初添加的属性:
$a = @()
for ($i = 0; $i -lt 5; $i++)
{
$item = New-Object PSObject -Property @{
Col1 = 'data1'
Col2 = 'data2'
Col3 = 'data3'
Col4 = 'data4'
}
$a += $item
}
同样,您可以使用[PSCustomObject]
类型加速器:
$a = @()
for ($i = 0; $i -lt 5; $i++)
{
$item = [PSCustomObject]@{
Col1 = 'data1'
Col2 = 'data2'
Col3 = 'data3'
Col4 = 'data4'
}
$a += $item
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)