【问题标题】:Use PowerShell to Group CSV data and export report使用 PowerShell 对 CSV 数据进行分组并导出报告
【发布时间】:2018-06-21 14:18:29
【问题描述】:

我已经检查了网站并尝试了谷歌资源,但似乎我没有走上正轨。

我有一个带有多个标题(参考、日期、用户、级别、发生日期等)的 csv 文件,我正在尝试使用 PowerShell 将这些数据从 Excel 分组到报告中。

条件应该是日期,然后是级别,并按用户分组。

到目前为止,我已经处理过这段代码:

$data = "C:\Users\Ao\Desktop\data.csv"

$file = Import-Csv $data

foreach ($line in $file){
  # Save the relevant fields in variables
  $sla            = $line.'SLA Escalation Level'
  $reference      = $line.'Request No.'
  $breach         = $line.'SLA Expected Fix Breach On'
  $description    = $line.'Description'
  $assignee       = $line.'Assignee'
  $priority       = $line.'Priority'
  $status         = $line.'Status'
  $updatedon      = $line.'Updated On'
  $updatedby      = $line.'Updated By'

  Group-Object -Property $assignee, $updatedby
}

运行代码后,什么都没有发生,甚至没有错误消息。

您能指导我正确的方向吗?我不是在寻找完整的脚本,因为我也在尝试学习逻辑方式。

【问题讨论】:

    标签: excel powershell csv


    【解决方案1】:

    在命令$file = Import-Csv $data 之后,变量$file 是代表您的csv 行的对象列表。每个对象都有可以操作/过滤的属性。

    例如,以下命令将仅显示 ,其中Julien 是受让人:

    $file | Where-Object { $_.Assignee -eq 'Julien' }
    

    如果你想通过Assignee进行分组,你可以使用下面的语法:

    $file | Group-Object -Property Assignee
    

    然后,您可以将过滤/分组的数据输出到其他函数。

    【讨论】:

    • 感谢您的回答。我尝试将第一个选项用于“Julien”,并将其输出到 csv。这很好,但第一行还有下一个文本:“#TYPE System.Management.Automation.PSCustomObject”。不幸的是,如果我想与所有受让人一起导出,我将不得不手动输入每个人的姓名。
    • -NoTypeInformation 添加到您的Export-Csv 以删除标题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    相关资源
    最近更新 更多