我的目标是编写一个脚本,在事件持续时间内检查日志文件,根据日志条目(开始/结束)计算持续时间,然后计算过去24小时内这些持续时间的平均值,并确定是否它大于某个值(例如,让我们使用2小时)。到目前为止,我已完成前两个部分,它正在检查日志并计算每个适用日志的持续时间。我不知道从最后一步开始的位置,来自所有日志的持续时间的平均值。以下是我的代码。
:plays guitar!
Lennon: plays bass!
:plays guitar!
Mccartney: plays bass!
答案 0 :(得分:1)
大概你这样做:
$durations = foreach ($sccmlogpath in $sccmlogpaths) {
# [snip]
$imageduration = New-TimeSpan $imagestarttime $imagefinishtime
$imageduration # the 'output' of the foreach () {}
}
# $durations is now an array of timespans
$measurements = $durations | Measure-Object -Average -Property TotalHours
$averageHours = $measurements.Average
if (2.5 -lt $averageHours) {
# code here
}
这是sum(n)/ count(n)平均值。
NB。如果您在过去24小时内查询,如果任何持续时间跨越午夜,New-TimeSpan将无法正常工作;它会看到23:01 - > 00:01至-23小时。