ここでは以下のデータを含む CSV を作成しようとしています。しかし、これについては理解もアイデアもありません
New_Extracted_Data は配列です:
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
以下はヘッダーを書くことを計画している方法です。ヘッダーはnoteプロパティであり、配列内のヘッダーとして取得されません。
$GetMembers = $New_Extracted_Data | Get-Member -MemberType NoteProperty
foreach($Member in $GetMembers)
{
$All_Columns += $Member.Name + ","
}
$All_Columns | Export-Csv -Path "C:\Script\Final_Data.csv" -Append -NoTypeInformation
そして、各メンバータイプの列の合計を計算しています
foreach($Member in $GetMembers)
{
$Col = $Member.Name
if($Col -ne "timestamp")
{
$Sum_Col = ($New_Extracted_Data | Measure-Object $Col -Sum).Sum
}
}
次に、それを CSV に書き込む必要があります。以下は予想されるO/Pです
例:
_ldmodels_MIN _ldmodels_MAX _ldmodels_AVERAGE
------------- ------------- -----------------
221690.04 221690.04 221690.04
これを行う方法についてアイデアが必要です。また、私のアプローチに問題がある場合はお知らせください。
それはありませんループします。 -join --> を使用するだけです。 $GetMembers.Name -結合 ','。そもそもなぜこのようにするのでしょうか?
– Things の管理者
2020 年 9 月 3 日 17:06
1
$New_Extracted_Data |Export-Csv だけではだめなのでしょうか?
– マティアス R. ジェッセン
2020 年 9 月 3 日 18:09
------------------------
単に理論的なことを知りたいだけでない限り、説明すると、指定された例では、要件を満たす実用的なアプリケーションがありません。 Export-Csv は、PowerShell オブジェクトを CSV 形式にシリアル化できます。 Select-Object を使用して、Export-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
0