【发布时间】:2016-03-11 20:20:23
【问题描述】:
我已将 CSV 文件导入到数组中,并按电子邮件地址对其进行分组。我希望能够在另一个 ForEach 循环中按名称调用该组,以便我可以向每个电子邮件地址发送一封电子邮件,其中包含与之关联的 $ServerID(s) 和 $DateTime(s) 表。 Group-Object 是开始这个的最佳方式吗?
在 CSV 文件中,一个邮箱地址可以关联多台服务器,但一台服务器只能关联一个邮箱地址。文件中的值会不断更新 - 因此几乎所有对象都需要动态变量。
$csv = import-csv "C:Example.csv"
$array = @()
ForEach ($server in $csv) {
$object = New-Object PSObject -Property @{"Email"= $server.Email; "ServerID" = $server.ServerID; "DateTime" = $server.DateTime}
$array += $object}
$array | Group-Object Email
Count Name Group
2 A@gmail.com {@{PG_Email=A@gmail.com; ServerID=333; Lease_End=10/10/15}, @{PG_Email=A@gmail.com; ServerID=111; Lease_End=12/12/15}}
1 B@gmail.com {@{PG_Email=B@gmail.com; ServerID=222; Lease_End=09/09/15}}
【问题讨论】:
标签: arrays csv powershell foreach group-by