PowerShell;需要帮助将CSV导入system.collection.arraylist



*由于Doug Maurer和Mathias R.Jessen 的评论,此问题已被重述

我正在尝试处理从Nessus合规性和漏洞扫描导出的.CSV文件。我将所有具有相同格式的CSV文件组合在一起,剩下一个新的CSV文件,平均约90000条记录和26个属性。

我需要:(1( 删除所有具有字符串"的行;[通过]";在description属性中(2a(合并为单个记录;主机";每个记录的属性具有相同的";描述";属性(2b(用相同的";描述";属性除了具有合并的";主机";属性

我目前有一个解决方案,它将Microsoft Excel与PowerShell结合在一起,但脚本运行了8天;我认为我可以通过从脚本中删除Excel并只处理PowerShell对象或类似对象中的数据来加快进程。

当涉及到我想要处理的数据量时,我知道PowerShell数组的效率很低,但有人告诉我[system.collection.arraylist]的效率要高得多;所以我试着用下面的方法来创建一个多维数组,但没有成功。

$list=Import-CSV ./MasterCompliance.csv
$array=[System.Collections.ArrayList]@(,($list.'Plugin ID'),($List.CVE),($List.CVSS),($List.Risk),($List.Host),($List.Protocol),($List.Port),($List.Name),($List.Synopsis),($List.Description),($List.Solution),($List.'See Also'),($List.'Plugin Output'),($List.'STIG Severity'),($List.'CVSS v3.0 Base Score'),($List.'CVSS Temporal Score'),($List.'CVSS v3.0 Temporal Score'),($List.'Risk Factor'),($List.BID),($List.XREF),($List.MSKB),($List.'Plugin Publication Date'),($List.'Plugin Modification Date'),($List.Metasploit),($List.'Core Impact'),($List.CANVAS)) 

上面的代码只生成了一个包含26条记录的一维数组。。。。而不是具有所有记录和26个维度的阵列。

我不必拘泥于数组,如果这能更好地用于不同的对象类型,我也会对此持开放态度。

主要问题不是数组,问题是这里的导入csv。

您有以下选项:

1.(您可以尝试使用-readcount获取内容,然后转换为csv。

2.((可能也是最有效的(是使用.net streamreader。例如,请参阅此处https://www.sqlshack.com/reading-file-data-with-powershell/或在powershell 中使用导入CSV的更有效方法

3.(arraylist的使用在powershell中非常有效,以及如何使用它们,例如:https://adamtheautomator.com/powershell-arraylist/

我建议您使用带有数组列表的.net阅读器

问候

相关内容

  • 没有找到相关文章

最新更新