Something like this?
$h = [ordered]@{
'Total Time' = ""
Uploads = ""
Seconds = ""
'BW Upload' = ""
'BW Storage' = ""
TestTime = ""
'Idle Time' = ""
'Process Time' = ""
Data_Len = ""
}
$testresults = get-content C:\Junk\TestResults.txt
ForEach ($line in $testresults){
if ($line -match "Total Time \(s\): (.+)$") {
$h.'Total Time' = $matches[1].trim()
Continue
}
if ($line -match "(.+)\suploads\|seconds\|bandwidth"){
$triplet = ($matches[1] -split "\s").Trim()
$h.Uploads = $triplet[0]
$h.Seconds = $triplet[1]
$h.'BW Upload' = $triplet[2]
Continue
}
if ($line -match "Rate\[MB/s\]:\s(.+)$"){
$h.'BW Storage' = $matches[1].Trim()
Continue
}
if ($line -match "testTime\[us\]:\s"){
$quint = ($line -split ",").Trim()
if ($quint[0] -match "testTime\[us\]:\s(.+)$"){
$h.TestTime = $matches[1].Trim()
}
if ($quint[1] -match "idleTime\[us\]:\s(.+)$"){
$h.'Idle Time' = $matches[1].Trim()
}
if ($quint[2] -match "procesing time\[us\]:\s(.+)$"){
$h.'Process Time' = $matches[1].Trim()
}
if ($quint[3] -match "data_len\[bytes\]:\s(.+)$"){
$h.Data_Len = $matches[1].Trim()
}
Continue
}
}
[PSCustomObject]$h