如何在对象中保存.csv路径?



我有一个这样的foreach循环:
我从XML加载一个对象,所以一个由ICT负责人的城市和电子邮件组成的对象,然后我使用电子邮件设置未来的导出路径。我还设定了$CurrentCity,以到达我们正在骑自行车的城市。 然后,我进行查询并检查完整报告,如果从我们正在骑自行车的对象中获取了该城市,如果有,我会使用相应的路径进行导出(如我之前所说,包括相应的电子邮件地址(。

问题是我接下来要发送这些邮件,但我需要在对象中收集收件人的附件和电子邮件的路径。 我该怎么做?我想我可以制作一个简单的对象附件路径和电子邮件,然后制作一个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
}
}

可以使用电子邮件地址和输出文件路径生成自定义对象,如下所示:

$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
}
}

最新更新