Powershell 首先将标题写入csv,然后附加相应的列数据

Powershell 首先将标题写入csv,然后附加相应的列数据,powershell,Powershell,我正在尝试用下面的数据创建一个csv。但我不知道这是怎么回事 新提取的\u数据是一个数组: timestamp _ldmodels_MIN _ldmodels_MAX _ldmodels_AVERAGE --------- ------------- ------------- ----------------- 1599136260 73896.68 73896.68 73896.68 1599136320 73896.68 73896.68

我正在尝试用下面的数据创建一个csv。但我不知道这是怎么回事

新提取的\u数据是一个数组:

timestamp  _ldmodels_MIN _ldmodels_MAX _ldmodels_AVERAGE
---------  ------------- ------------- -----------------
1599136260 73896.68      73896.68      73896.68         
1599136320 73896.68      73896.68      73896.68         
1599136380 73896.68      73896.68      73896.68         
  • 下面是我计划编写头的方式,头是noteproperty,而不是数组中的头
  • 然后我计算每个成员类型的列的总和

                           foreach($Member in $GetMembers)
                                {
                                    $Col = $Member.Name
                                    if($Col -ne "timestamp")
                                    {                                
                                       $Sum_Col = ($New_Extracted_Data | Measure-Object $Col -Sum).Sum                                
                                    }
                                 }
    
    现在我需要将其写入csv。以下是预期的o/p e、 g


    请需要关于如何做到这一点的想法。另外,如果我的方法有任何问题,请告诉我。

    除非只是需要一个理论解释,否则在给定的示例中,您的需求没有实际应用<代码>导出Csv可以将PowerShell对象序列化为Csv格式<代码>选择对象可用于筛选发送到
    导出Csv
    的属性

    # Export Your Object to CSV with all custom properties as columns
    $New_Extracted_Data | Export-Csv "C:\Script\Final_Data.csv" -NoType
    
    # Export object to CSV without timestamp property
    $New_Extracted_Data | Select-Object -Property * -ExcludeProperty timestamp |
        Export-Csv "C:\Script\Final_Data.csv" -NoType
    
    # Creating sums of your values when properties are known
    [pscustomobject]@{
        _ldmodels_MIN = ($New_Extracted_Data._ldmodels_MIN | Measure -Sum).Sum
        _ldmodels_MAX = ($New_Extracted_Data._ldmodels_MAX | Measure -Sum).Sum
        _ldmodels_AVERAGE = ($New_Extracted_Data._ldmodels_AVERAGE | Measure -Sum).Sum
    } | Export-Csv sums.csv -NoType
    
    # Summing all properties except timestamp
    $Properties = ($New_Extracted_Data[0] | Get-Member -MemberType NoteProperty |
        Where Name -ne 'timestamp').Name
    $Hash = [ordered]@{}
    foreach ($Property in $Properties) {
        $Hash[$Property] = ($New_Extracted_Data.$Property | Measure -Sum).Sum
    }
    [pscustomobject]$Hash | Export-Csv sum.csv -NoType
    

    没有必要循环。只需使用
    -join
    -->
    $GetMembers.Name-join',
    。为什么要这样做?为什么不只是
    $New_Extracted_Data | Export Csv
    _ldmodels_MIN _ldmodels_MAX _ldmodels_AVERAGE
    ------------- ------------- -----------------
     221690.04      221690.04      221690.04         
    
    
    # Export Your Object to CSV with all custom properties as columns
    $New_Extracted_Data | Export-Csv "C:\Script\Final_Data.csv" -NoType
    
    # Export object to CSV without timestamp property
    $New_Extracted_Data | Select-Object -Property * -ExcludeProperty timestamp |
        Export-Csv "C:\Script\Final_Data.csv" -NoType
    
    # Creating sums of your values when properties are known
    [pscustomobject]@{
        _ldmodels_MIN = ($New_Extracted_Data._ldmodels_MIN | Measure -Sum).Sum
        _ldmodels_MAX = ($New_Extracted_Data._ldmodels_MAX | Measure -Sum).Sum
        _ldmodels_AVERAGE = ($New_Extracted_Data._ldmodels_AVERAGE | Measure -Sum).Sum
    } | Export-Csv sums.csv -NoType
    
    # Summing all properties except timestamp
    $Properties = ($New_Extracted_Data[0] | Get-Member -MemberType NoteProperty |
        Where Name -ne 'timestamp').Name
    $Hash = [ordered]@{}
    foreach ($Property in $Properties) {
        $Hash[$Property] = ($New_Extracted_Data.$Property | Measure -Sum).Sum
    }
    [pscustomobject]$Hash | Export-Csv sum.csv -NoType