我有一个foreach
循环,其工作方式如下:
我从XML加载对象,因此由城市和ICT负责人的电子邮件组成的对象,然后使用电子邮件设置将来的导出路径。我还设置了$CurrentCity
以获取我们正在骑自行车的城市。
然后,我进行查询并检入完整的报告,看看是否有从我们骑自行车的物体上取走的城市,如果有,我用相应的路径进行导出(就像我之前说过的那样,包括相应的电子邮件地址)。 / p>
问题是我接下来要发送这些邮件,但我需要收集对象中附件的路径和收件人的电子邮件。 我怎样才能做到这一点?我以为我可以创建一个简单的对象AttachmentPath和Email,然后对其进行foreach,以获取每次的值并发送单附件的邮件。
$LCL_Setting.Local_Config.LF_param.IctHead.city | foreach {
$tempfile = $myDir + $dir_out + $fileOut + $LogDate +'_'+$_.ICT_mail +'.csv'
$CurrentCity = $_.Branch
if ($result | where {$_.City -eq "$($CurrentCity)"}) {
$result |
where {$_.City -eq "$($CurrentCity)"} |
Export-Csv $tempfile -NoTypeInformation -Append
}
}
答案 0 :(得分:0)
您可以使用以下电子邮件地址和输出文件路径来构建自定义对象:
$temp_files = $LCL_Setting.Local_Config.LF_param.IctHead.city | foreach {
...
if ($result | where {$_.City -eq "$($CurrentCity)"}) {
...
New-Object -Type PSObject -Property @{
'Mail' = $_.ICT_mail
'File' = $tempfile
}
}
}
但是,使用哈希表而不是自定义对象列表可能是一种更好的方法,因为它使您可以通过电子邮件地址查找文件路径。
$temp_files = @{}
$LCL_Setting.Local_Config.LF_param.IctHead.city | foreach {
...
if ($result | where {$_.City -eq "$($CurrentCity)"}) {
...
$temp_files[$_.ICT_mail] = $tempfile
}
}