【问题标题】:Powershell CSV grouping data by fieldsPowershell CSV按字段分组数据
【发布时间】:2019-06-07 18:51:29
【问题描述】:

我在这里遇到了很大的困难,我被要求创建一个大脚本,该脚本将根据从 CSV 文件中获取的变量在 SCCM 控制台中执行某些操作。 我已经介绍了 SCCM 脚本部分,因为我认为它会更难......但似乎我不知道如何从 CSV 读取数据......

是否可以从如下文件中获取数据:

Hostname  Hours  Date
S1        14-15  05.05.2019
S2        14-15  05.05.2019
S3        9-13   06.05.2019

并使用 powershell 创建变量,这些变量将包含所有主机名,这些主机名共享“小时”中的相同数据和日期列中的相同日期?

我需要这个的原因是因为我将使用以下逻辑在 SCCM 中创建集合:

  • 创建一个集合,其中包含主机名表中的所有主机名,其名称是时间和日期的组合(“Myname 14-15 05.05.2019”),然后
  • 编辑该集合的属性以输入从 Hours 列读取的数据以设置维护窗口(这基本上意味着我将使用包含 Hours 和 Date 输入的变量,并将其放入维护窗口中,并使用为此目的制作的 powershell cmdlet)

有什么方法可以做到这一点,甚至可以让数据看起来像我需要的那样吗?

【问题讨论】:

  • $Data=Import-Csv C:\Path\To\File.csv; $Data | Group Hours,Date 应该这样做。

标签: powershell csv sccm


【解决方案1】:

假设一个csv文件input.csv

Import-Csv .\Input.csv | 
  Group-Object Hours,Date | 
    ForEach-Object {
      [pscustomobject]@{
        Name      = "Myname {0} {1}" -f ($_.Name -Split ', ')
        HostNames = $_.Group.HostName -Join '; '
      }
    }

产量:

Name                    HostNames
----                    ---------
Myname 14-15 05.05.2019 S1; S2
Myname 9-13 06.05.2019  S3

【讨论】:

  • 非常感谢,这让我的代码更进一步,我会以此为基础:)
猜你喜欢
  • 1970-01-01
  • 2014-09-23
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 2020-06-06
相关资源
最近更新 更多