Arrays foreach中的数组拆分
我正在使用Exchange邮件跟踪从一个数组中拆分收件人,使其显示在自己的行中 当我运行以下命令时:Arrays foreach中的数组拆分,arrays,powershell,foreach,Arrays,Powershell,Foreach,我正在使用Exchange邮件跟踪从一个数组中拆分收件人,使其显示在自己的行中 当我运行以下命令时: foreach ($recepient in $recepients){ $recepient.Recipients } 收件人显示为一个列表 但是,当我将变量添加为表达式时,输出将显示仍然在数组中的收件人 还尝试使用: Split-Array -inArray $user -Size 1 没有多大进展 输出未拆分收件人数组。例如: Timestamp recip
foreach ($recepient in $recepients){
$recepient.Recipients
}
收件人显示为一个列表
但是,当我将变量添加为表达式时,输出将显示仍然在数组中的收件人
还尝试使用:
Split-Array -inArray $user -Size 1
没有多大进展
输出未拆分收件人数组。例如:
Timestamp recipients Messagesubject eventID
--------- ---------- ---------------- -------
01/01/2019 10:11:00 {User1,User2} Subject Deliver
目标是让每个用户都有自己的线路
Timestamp recipients Messagesubject eventID
--------- ---------- ---------------- -------
01/01/2019 10:11:00 User1 Subject Deliver
01/01/2019 10:11:00 User2 Subject Deliver
时间戳收件人Messagesubject事件ID
--------- ---------- ---------------- -------
2019年1月1日10:11:00用户1主题交付
2019年1月1日10:11:00用户2主题交付
如果结果中有嵌套数组,并且要提取它们,则可以使用嵌套循环和自定义对象,如下所示:
foreach ($recepient in $recepients){
Foreach ($SingleRecipient in $recepient.Recipients) {
[PSCustomObject]@{
User = $SingleRecipient
timestamp = $recepient.timestamp
MessageSubject = $recepient.MessageSubject
eventid = $recepient.eventid
}
}
}
如果结果中有嵌套数组,并且要提取它们,则可以使用嵌套循环和自定义对象,如下所示:
foreach ($recepient in $recepients){
Foreach ($SingleRecipient in $recepient.Recipients) {
[PSCustomObject]@{
User = $SingleRecipient
timestamp = $recepient.timestamp
MessageSubject = $recepient.MessageSubject
eventid = $recepient.eventid
}
}
}
太好了,谢谢你。使用pscustomobject以及将其添加到变量中所花费的时间
使用嵌套的foreach循环更有意义 太好了,谢谢你。使用pscustomobject以及将其添加到变量中所花费的时间
使用嵌套的foreach循环更有意义 您将需要一个嵌套的foreach循环来提取recipients属性中的用户。[1]此
$recipients=get-messagetrackinglog
未获取收件人。。。它正在收到信息。[grin][2]这意味着此foreach($recepient in$recepients)
不会给收件人。。。它给你信息。[3] 这意味着此$user=$recepient.recipient
最终将为您提供一个或多个实际收件人。//如果您希望在单独的行中列出这些收件人,则需要遍历该列表。如果您只想展开列表,请使用$Message.Recipients-join';'
为您提供分号分隔的文本字符串。您需要一个嵌套的foreach循环来提取recipients属性中的用户。[1]此$recipients=get-messagetrackinglog
未获取收件人。。。它正在收到信息。[grin][2]这意味着此foreach($recepient in$recepients)
不会给收件人。。。它给你信息。[3] 这意味着此$user=$recepient.recipient
最终将为您提供一个或多个实际收件人。//如果您希望在单独的行中列出这些收件人,则需要遍历该列表。如果您只想展开列表,请使用$Message.Recipients-join';'
为您提供以分号分隔的文本字符串。