1
PowerShell을 사용하여 일부 Outlook 전자 메일 통계를 처리하려고합니다. 나를 멈추게하는 것은 각 특정 수신자에게 보낸 이메일의 수를 계산하는 것입니다. Outlook에서는받는 사람 필드를 ;
으로 구분 된 단일받는 사람 목록으로보고합니다.PowerShell이 테이블 열의 모든 항목을 확장 (unpivot)
전자 메일을 5 명이 보낸 경우 각 사람이 계산되도록 해당 문자열을 확장하려고합니다.
예를 들어, 내 코드는 지금까지 있습니다 :
# Create a link to Outlook
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
# Take a copy of the copy outbox (which is maintained by an Outlook rule)
$out = $namespace.Folders.Item('Local Copy').folders.item('Copy Outbox').items
# Group by who the email was sent to
$byTo = $out | group-object To -noelement | sort Count -Descending | select Count, @{Expression={$_.Name};Label="To"}
같은 반환 :
Count To
----- --
24 Fred Talkative
11 A Person (Acme Corp)
1 Jim Twobob (Customer Org)
9 Someone Smith (Acme Corp)
1 Jane Twobob (Customer Org)
: 반면
Count To
----- --
24 Fred Talkative
11 A Person (Acme Corp); Jim Twobob (Customer Org)
9 Someone Smith (Acme Corp); Jane Twobob (Customer Org)
을, 내가보고 싶은 것은 같은 나는 split
함수를 사용해 보았습니다 :
$expr = @{Expression={$_.To -split '; '};Label="ToSplit"}
$byTo | select Count, $expr | select Property * -ExpandProperty ToSplit
하지만이 개수는 줄어 듭니다.
출력물을 어떻게 얻을 수 있습니까?
아마 현명한 변화. 불행히도, 그것은 작동하지 않습니다. 결과는'; 'ToSplit' 필드를 보여줄 때 제거되었습니다. –
분할 표현식을 확장해야하지만, 그렇게하면 그룹 객체를 더 이상 수행 할 수없는 것처럼 보입니다. 하나의 항목 만 얻습니다. –
표현 비트를 제거하고 추가 단계를 추가했습니다. 나는 이것이 제대로 작동한다고 생각한다. –