【问题标题】:Powershell v2 & v3 hangs with use of group-object in combination with import-csvPowershell v2 & v3 挂起使用 group-object 和 import-csv
【发布时间】:2013-01-06 09:09:16
【问题描述】:

当我使用这行脚本时,它似乎使 powershell 的 ISE 崩溃。如果我删除文件的前 25 行以外的所有行,我可以毫无问题地计算它们。但是,读取整个文件 90,000 行将导致 powershell ISE 永远不会完成命令,然后如果我按下停止按钮,ISE 将永远不会响应(尽管我可以关闭应用程序)。

import-CSV C:\CONVERT\DataOutput.csv -Delimiter '|' | group-object 'Person ID'
| measure-Object 'Name' 

我注意到,当我运行 import-csv 命令时,私有工作集内存会上升到大约 2.9 GB。我已经查看了命令选项,但没有看到以不同方式处理内存中对象的方法,import-csv 将自行完成,但与 Group-object & measure 结合运行时不会目的。提前感谢任何想法或问题,以帮助我找到路径!

【问题讨论】:

  • 该文件为 66mb,虽然我觉得这对于 csv 文件来说很大,但对于现代系统来说似乎并不大。由于office可以打开它,我觉得powershell应该能够使用该文件。

标签: powershell grouping


【解决方案1】:

如果你删除了measure-object,它会一直运行吗?性能提示,尝试将 -noelement 开关添加到 group-object,它应该会提高执行率并减少内存消耗。

【讨论】:

  • Shay,感谢您的建议,但是在没有测量对象的情况下运行它似乎挂起(我让它运行了大约 20 分钟而没有响应)。这是添加了 -noelement 标志。
  • 这有什么好处吗?导入-csv ... | foreach {$_."person id"} |组 -noel
  • 您的版本花了将近两个小时才完成。它没有给我想要的结果,但它确实揭示了可能的问题。看来 import-csv 函数没有正确解析换行符,这是由于输出中包含 LF 的字段。
  • 感谢您的更新。确保 CSV 文件格式正确,显然,字段内的 LFs 不是正常的 csv 结构。
猜你喜欢
  • 2020-04-21
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 2013-09-23
相关资源
最近更新 更多