在Powershell中将多行附加到csv

时间:2019-10-20 21:41:31

标签: powershell csv append

我正在尝试创建一个脚本,该脚本每天通过API运行多个查询来检索数据,然后将值附加到CSV文件中的多个新行中。如何将所有值附加到CSV文件中的多个新行。

#Category 1 Queries

$C1_Range1 = 'API query...'
$C1_Range2 = 'API query...'
$C1_Range3 = 'API query...'

#Category 2 Queries

$C2_Range1 = 'API query...'
$C2_Range2 = 'API query...'
$C2_Range3 = 'API query...'

...

Export-Csv 'C:\path\to\your.csv' -NoType -Append

我试图避免在每次查询后导出为CSV。是否可以在Powershell中构建一个可以一次性添加到CSV的表格?

这是我想要的CSV输出的示例

DATE, CATEGORY, RANGE, VALUE        #ColumnName
...
09/10/2019, CAT1, RANGE3, 34567     #Existing Values
09/10/2019, CAT2, RANGE1, 12345
09/10/2019, CAT2, RANGE2, 98776
09/09/2019, CAT2, RANGE3, 45654
10/10/2019, CAT1, RANGE1, 12345 
10/10/2019, CAT1, RANGE2, 23456
10/10/2019, CAT1, RANGE3, 34567
10/10/2019, CAT2, RANGE1, 98765
10/10/2019, CAT2, RANGE2, 87654
10/10/2019, CAT2, RANGE3, 34567     #I want to append all the new queries to the bottom

例如,在添加新行之前如何将它们添加到哈希表中……

'$NewRow = Date + Category + Range + Query 1
Add to bottom of $table

$NewRow = Date + Category + Range + Query 1
Add to bottom of $table

$NewRow = Date + Category + Range + Query 1
Add to bottom of $table'

...
And then I can append to the CSV

您的帮助将不胜感激!谢谢

1 个答案:

答案 0 :(得分:1)

如果您可以在集合中组合查询,则可以遍历它们并以PSCustomObject的形式创建每个条目。这是另一个问题的一个示例:PSObject array in PowerShell

$coll = @(
   Range1,
   Range2,
   Range3,
   ...
)

$table = foreach ($item in $coll)
{
   [PSCustomObject]@{
      'Date' = Get-Date
      'Category' = $item.Category
      'Range' = $item.Name
      'Value' = $item.Value
   }
}

您可以导出为CSV的最终报告。