$AllMeetUsers = $null
[array]$AllMeetUsers = gam report meet user all | ConvertFrom-Csv | Select-Object 'actor.email','id.time'
[array]$result = $AllMeetUsers | ForEach-Object {
$Email = $_.'actor.email'
If (-not([string]::IsNullOrWhiteSpace($Email))) {
$IDTime = $_.'id.time'
$FormatIDTime = Get-date($IDTime) -Format("MM-dd-yy")
[PSCustomObject]@{
Email = $Email
Time = $FormatIDTime
}
}
}
制作如下輸出表
06-07-21 <Email>
09-29-21 <Email>
06-15-21 <Email>
07-12-21 <Email>
07-20-21 <Email>
07-14-21 <Email>
我想洗掉完整的重復電子郵件地址行。
但這條線不起作用
[array]$result = $result | Sort-Object -Property email | Select-Object time,email -Unique
和
[array]$result = $result | Sort-Object -Property email | Select-Object email -Unique
洗掉時間欄位,同時為我提供唯一的電子郵件地址。
我該如何實作?
uj5u.com熱心網友回復:
使用 Dictionnary@{}而不是陣列。
$results = @{}
if (-not $results.ContainsKey($Email)) {
$results.Add($Email, [PSCustomObject]@{
Email = $Email
Time = $FormatIDTime
})
}
$results.Values
uj5u.com熱心網友回復:
@MathiasR.Jessen 在評論中提出了一個很好的觀點,我認為我的代碼可能需要在概念上進行更改。然而,根據我從上面@Hazrelle 接受的答案,代碼就是這樣出來的。
$AllMeetUsers = $null
[array]$AllMeetUsers = gam report meet user all | ConvertFrom-Csv | Select-Object 'actor.email','id.time'
$results = @{}
$AllMeetUsers | ForEach-Object {
$Email = $_.'actor.email'
if (-not $results.ContainsKey($Email) -and -not([string]::IsNullOrWhiteSpace($Email))) {
$IDTime = $_.'id.time'
$FormatIDTime = Get-date($IDTime) -Format("MM-dd-yy")
$results.Add($Email, [PSCustomObject]@{
Email = $Email
Time = $FormatIDTime
})
}
}
$results.values
想要查詢更多的資訊。 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_hash_tables?view=powershell-7.1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/331880.html
標籤:电源外壳
