首页 > 解决方案 > PowerShell:将数组拆分为两列

问题描述

我有一个包含以下值的数组:

| Firstname | Lastname         | Username |
|-----------|------------------|----------|
| person1   | person1_lastname | p1       |
| person2   | person2_lastname | p2       |
| person3   | person3_lastname | p3       |
| person4   | person4_lastname | p4       |

这是产生上述结果的代码:

$finalUsers = foreach($person in $excludedUsers) {
    if ($person.Username -notin $ausLunchJobs.AssigneeUser -and $person.Username -notin $ausLunchJobs.AssigneeUser2) {
        $person | Select-Object Firstname, Lastname, Username
    }
}

我想将该数组分成两列并将Username数据配对在一起。

理想输出:

| Username | Username2 |
|----------|-----------|
| p1       | p2        |
| p3       | p4        |

关于如何实现这样的目标的任何指导?

TIA

标签: powershell

解决方案


为要在表中显示的每创建 1 个新对象:

$userPairs = for($i = 0; $i -lt $finalUsers.Count; $i += 2){
  $finalUsers[$i] |Select-Object Username,@{ Name='Username2'; Expression={ $finalUsers[$i+1].username } }
} 

结果:

PS ~> $userPairs |Format-Table 

Username Username2
-------- ---------
p1       p2
p3       p4

推荐阅读