【问题标题】:Import from CSV to Hashtable, then export back to CSV从 CSV 导入 Hashtable,然后导出回 CSV
【发布时间】:2016-04-24 05:01:37
【问题描述】:

我有一个 CSV,它使用运行日志来更新许多自动化任务的状态。我需要一种快速的方法来从 CSV 中查找信息,以便我可以对其进行修改并将其导出回 CSV。

对于此示例,假设我正在跟踪正在运行的进程,并且我想使用“ID”属性作为哈希表的键。

$pathCsv = 'C:\test\test.csv'
Get-Process | Export-Csv $pathCsv

我可以很好地从 CSV 导入,但我不知道如何将其转换为哈希表或将其从哈希表获取为 CSV。

【问题讨论】:

    标签: csv powershell import export hashtable


    【解决方案1】:
    • 要将 CSV 导入转换为哈希表,请使用 Group-Object。
    • 要将哈希表导出回 CSV,您必须使用 .GetEnumerator() 方法将其分解为对象,以便与 Export-Csv 一起使用。

    使用上面的例子:

    $pathCsv = ($env:TEMP + '\test.csv')
    Get-Process | Export-Csv $pathCsv
    
    #import CSV to array as hash table using the ID property as the key
    $toHashTable = Import-Csv $pathCsv | Group-Object -AsHashTable -Property ID
    
    #make changes to hashtable here
    
    #break the hashtable into the pipeline, then grab each $_.Value property
    #and break that out of the hashtable into the pipeline
    $toHashTable.GetEnumerator() | ForEach{($_.Value).GetEnumerator()} | Export-Csv $pathCsv
    

    我在这里问了这个问题,以便我可以为正在寻找解决同一问题的其他人回答这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 2022-06-17
      • 2016-01-09
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多