Estou fazendo referência a uma lista que possui muitos dados na forma do tempo decorrido de um processo e estou tentando convertê-los em um formato em que possa encontrar a quantidade média de tempo decorrido.
Os dados são mais ou menos assim:
ElapsedTime
0 hours, 1 minutes, 14 seconds
0 hours, 16 minutes, 2 seconds
0 hours, 4 minutes, 0 seconds
0 hours, 11 minutes, 59 seconds
Então, eu tenho os dados acima Importados em uma variável e extraia os dados numéricos usando esta fórmula:
$ElapsedHours, $ElapsedMinutes, $ElapsedSeconds = $TimeElapsed -split ', ' -split ' ' | Select -Index 0,2,4
A partir daí, atribuo os valores a uma variável e a uma instância do New-TimeSpan:
$ElapsedTimeSpanObject = New-TimeSpan -Hours $ElapsedHours -Minutes $ElapsedMinutes -Seconds -$ElapsedSeconds
Essa é a parte que fica mais complicada para mim. Os dois exemplos de código acima estão ocorrendo em um loop Foreach e eu já criei uma matriz em branco. Depois que o objeto de intervalo de tempo é criado, ele é inserido na matriz e examina o próximo valor ElapsedTime.
Eu quero encontrar a média da matriz total.
Quando executo o código atual que tenho para tentar encontrar a Média, recebo um erro. Aqui está o código que estou usando:
$ElapsedTimespanCollection | Measure-Object -Average
A execução do código acima me dá esse erro para cada objeto na matriz:
Objeto de medida: o objeto de entrada "00:02:44" não é numérico. Na linha: 1 caractere: 30 + $ ElapsedTimespanCollection | Measure-Object -Average + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidType: (00: 02: 44: TimeSpan) [Objeto de medida], PSInvalidOperationException + FullyQualifiedErrorId: NonNumericInputObject, Microsoft.PowerShell.Commands.MeasureObjectCommand
Então, como faço para converter ou formatar essas medidas de tempo em algo que eu possa comparar em relação à sua média?