从已有的值范围填充数组中的 属性 值 - 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
$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