从已经具有一定范围的值来填充数组中的属性值-PowerShell

时间:2018-07-05 16:01:09

标签: powershell exchange-server

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

$ emails

.func (.param .b32 func_retval0) _Z3addii( .param .b32 _Z3addii_param_0, .param .b32 _Z3addii_param_1 ) { .reg .b32 %r<4>; ld.param.u32 %r1, [_Z3addii_param_0]; ld.param.u32 %r2, [_Z3addii_param_1]; add.s32 %r3, %r2, %r1; st.param.b32 [func_retval0+0], %r3; ret; } 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

$ DagSelection .... and So on... DAGname Sr GB-01 1 GB-04 2 GB-02 3

GB-03 4

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

我的问题在这里,代码如下。它将为“电子邮件”列中给定的每个电子邮件地址填充数据库。但是,不是循环的。导致范围完成,我想要的是填写范围,直到我们有电子邮件地址到位。这意味着如果范围是GB-01-001到GB-01-100,则应从头开始。希望我在这里满足了要求。请让我知道是否有任何疑问。

.... and So on...

$ emailsTemp

电子邮件测试
$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 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) `........依此类推...直到第一列名为 Email 的电子邮件ID出现。

1 个答案:

答案 0 :(得分:1)

#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