我想用powershell导出IIS统计信息,但我只有1d的分辨率。如何在1小时内对$log
进行分组?
foreach ($item in ($log | Group-Object -Property Date ))
{
Write-Host $("{0};" -f $item.Name) -NoNewline
Write-Host $("{0};" -f $(($item.Group | measure ).Count)) -NoNewline
Write-Host $("{0:N2};" -f $(($item.Group | measure -Property Sent -Sum).Sum / 1MB)) -NoNewline
Write-Host $("{0:N2};" -f $(($item.Group | measure -Property Received -Sum).Sum / 1MB))
}
修改
遗憾的是,如果我添加,*
来获取整个对象
$group = $log |
Select-Object @{Name="Hour"; Expression={"{0} {1}" -f $_.Timestamp.Date ,$_.Timestamp.Hour}},* |
Group-Object -Property Hour
答案 0 :(得分:1)
您可以使用Select-Object
cmdlet将每个Date
的小时部分提取为calculated property并按该属性分组:
$log | Select-Object @{Name="Hour";Expression={$_.Date.Hour}} | Group-Object Hour