从变量中选择对象属性列表

DGi*_*DGi 3 powershell

我正在尝试分析大量robocopy日志,以便在列而不是行中进行摘要。

我将数据收集在一个哈希数组中,效果很好。每个哈希具有以下结构:

Bytes_Copied   : 0
Bytes_FAILED   : 0
Source         : PROGRAM
Files_Total    : 582794
Run Code Online (Sandbox Code Playgroud)

我这样导出它们:

Bytes_Copied    Bytes_FAILED   Source      Files_Total   
------------    ------------   ------      -----------   
      1.006t           1.69m     TEAM           884194      
Run Code Online (Sandbox Code Playgroud)

因为我想将它们导出到 CSV 中,所以我希望能够选择列的顺序。当我在命令中“硬编码”属性时,这有效:

$collectLines | Select-Object -Property Source,Date,Started,Ended,BpSec |
  Where-Object {$_.Source -eq 'TEAM'} |
  Export-Csv $ExportFileTeam -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

由于实际上有更多的列,我想到将它们放入一个字符串中,以帮助选择顺序,而无需触及有效的代码。

$ExportList = "Source,Date,Started,Ended,BpSec"
Run Code Online (Sandbox Code Playgroud)

但我无法让 Select-Object 处理我的字符串:

Select-Object -Property $ExportList
Run Code Online (Sandbox Code Playgroud)

我用括号、大括号尝试了很多东西,但没有任何效果。我也无法在互联网上找到线索。

Ans*_*ers 5

您必须将属性列表指定为字符串数组,而不是具有逗号分隔名称的单个字符串:

$ExportList = 'Source', 'Date', 'Started', 'Ended', 'BpSec'
Run Code Online (Sandbox Code Playgroud)