views:

42

answers:

1

I am trying to seperate values in an array so i can pass them to another function.

Am using the select-Object function within a for loop to go through each line and separate the timestamp and value fields.

However, it doesn't matter what i do the below code only displays the first select-object variable for each line. The second select-object command doesn't seem to work as my output is a blank line for each of the 6 rows.

Any ideas on how to get both values

$ReportData = $SystemStats.get_performance_graph_csv_statistics( (,$Query) )


### Allocate a new encoder and turn the byte array into a string
$ASCII = New-Object -TypeName System.Text.ASCIIEncoding
$csvdata = $ASCII.GetString($ReportData[0].statistic_data) 

$csv2 = convertFrom-CSV $csvdata


$newarray = $csv2 | Where-Object {$_.utilization -ne "0.0000000000e+00" -and   $_.utilization -ne "nan" }


    for ( $n = 0; $n -lt $newarray.Length; $n++)
    {
       $nTime =  $newarray[$n]
       $nUtil =  $newarray[$n]
       $util = $nUtil | select-object Utilization
       $util
       $tstamp = $nTime | select-object timestamp
       $tstamp

    }
A: 

Let me slightly modify the processing code, if it will help.

$csv2 | 
  Where-Object {$_.utilization -ne "0.0000000000e+00" -and   $_.utilization -ne "nan" } |
  Select-Object Utilization,TimeStamp

It will produce somewhat different output, but that should be better for working with. The result are objects with properties Utilization and TimeStamp. You can pass them to the another function as you mention.

Generally it is better to use pipes instead of for loops. You don't need to care about indexes and it works with arrays as well as with scalar values.


If my updated code won't work: is the TimeStamp property really filled with any value?

stej
Sorry for the late reply. I added your code and got a interesting output. Utilization shows correctly but timestamp loops round 6 times. What causes that and how do i stop it EDIT i think the code is working properly and the initial convertfrom-CSV cmd is causing the timestamp issue
Andrew
If you can publish it, it would be great to see the source data `$csvdata` and your expected output.
stej