从已有的值范围填充数组中的 属性 值 - PowerShell

Filling up property value in array from already having a range of values - PowerShell

$emails = Import-Csv "C:\Testing\Emails.csv"

$电子邮件

Email User-1@test.com User-2@test.com User-3@test.com User-4@test.com User-5@test.com User-6@test.com User-7@test.com User-8@test.com User-9@test.com User-10@test.com .... and So on...

$DagSelection DAGname Sr GB-01 1 GB-04 2 GB-02 3 GB-03 4

$DagValues = $DagSelection.dagname
[PSCustomObject]$Array1 = @()
foreach ($x in $DagValues) {$Array1 += 1..100 | foreach {[PsCustomObject] 
@{Databases= $x + "-" + "{0:D3}" -f [int]$_}} }

$Array1 Databases GB-01-001 GB-01-002 GB-01-003 GB-01-004 GB-01-005 .... and So on...

我的问题出在下面给出的代码上。它为电子邮件列中给出的每个电子邮件地址填充数据库。但是,不在循环中。因为范围已经完成,我想要的是填充它,直到我们有电子邮件地址。这意味着如果范围是 GB-01-001 到 GB-01-100,它应该从头开始。希望我已经满足了这里的要求。如果有任何疑问,请告诉我。

$props = $Array1 | Get-Member -MemberType NoteProperty | select -ExpandProperty Name
foreach ($prop in $props){$emailsTemp | Add-Member -Name $prop -Value $null -MemberType NoteProperty -Force}
for ($i=0;$i -lt $emailsTemp.count; $i ++){ $emailsTemp[$i].Databases = 
$Array1[$i].Databases}
$emailsTemp

$emailsTemp

电子邮件测试
User-1@test.com GB-01-001 User-2@test.com GB-01-002 User-3@test.com GB-01-003 User-4@test.com GB-01-004 User-5@test.com GB-01-005 User-6@test.com GB-01-006 User-7@test.com GB-01-007 User-8@test.com GB-01-008 User-9@test.com GB-01-009 User-10@test.com GB-01-010 ...... User-401@test.com (I want to fill up here as well) User-402@test.com (I want to fill up here as well) User-403@test.com (I want to fill up here as well) `........等等......直到电子邮件 ID 出现在名为 Email.

的第一列中
#Starting Values
$emails = Import-Csv "C:\Testing\Emails.csv"
$DagSelection = Import-Csv "something.csv"
$DagValues = $DagSelection.dagname

#Get Database array
[array]$Databases=$null
ForEach ($x in $DagValues) {        
    For ($i=1;$i -lt 101;$i++) {
        [array]$Databases+=$x+"-"+("{0:D3}" -f [int]$i)
    }
}

#Output Item
class OutputClassItem {
    [string]$Email
    [string]$DB
}

#Zipping together Email Addresses with Databases
#If Database list runs out, repeat from beginning
[array]$OutputArray=$null
$loopcount=0
Do {
    For($j=0;$j -lt $Databases.Count -and $loopcount -lt $emails.Count;$j++) {
        $OutputItem = New-Object -Type OutputClassItem
        $OutputItem.Email=$emails[$loopcount]
        $OutputItem.DB=$Databases[$j]
        [array]$OutputArray+=$OutputItem
        $loopcount++
    }
} While ($loopcount -lt $emails.Count)

$OutputArray | Export-Csv "output.csv" -NoTypeInformation