DGi
DGi

Reputation: 31

Select-Object list of properties from a variable

I am trying to analyze a lot of robocopy logs to have summaries in column instead of lines.

I gather data in an array of hashes which works fine. Each hash has the following structure:

Bytes_Copied   : 0
Bytes_FAILED   : 0
Source         : PROGRAM
Files_Total    : 582794

I am exporting them like that:

Bytes_Copied    Bytes_FAILED   Source      Files_Total   
------------    ------------   ------      -----------   
      1.006t           1.69m     TEAM           884194      

As I want to export them into a CSV I wish I was able to select the order of columns. This works when I "hard code" properties in the command:

$collectLines | Select-Object -Property Source,Date,Started,Ended,BpSec |
  Where-Object {$_.Source -eq 'TEAM'} |
  Export-Csv $ExportFileTeam -NoTypeInformation

As there are many more columns actually I had the idea to put them in a string to help choosing the order without touching code that works.

$ExportList = "Source,Date,Started,Ended,BpSec"

But I cannot make it to have the Select-Object take care of my string:

Select-Object -Property $ExportList

I tried many things with parentheses, braces, nothing works. Also I could not find a clue on the Internet.

Upvotes: 3

Views: 13779

Answers (1)

Ansgar Wiechers
Ansgar Wiechers

Reputation: 200203

You must specify the property list as an array of strings, not as a single string with comma-separated names:

$ExportList = 'Source', 'Date', 'Started', 'Ended', 'BpSec'

Upvotes: 5

Related Questions