2017-07-27 131 views
0

我正在使用PowerShell中的驱动器清理脚本。作为其中的一部分,我使用Get-ChildItem cmdlet来获取所有文件的列表。有很多(50k +)的文件。存储变量vs输出到文件

我已经将cmdlet的输出引入CSV,认为它会节省一些RAM。然后导入该CSV并逐行处理。我的理解是,只有CSV的当前行被加载到RAM中。那是对的吗?

如果整个CSV被加载到RAM中,因为它被处理,那么这个问题是没有意义的。在这种情况下,我只是将输出放入一个变量中进行处理。

+1

它加载所有。你可以使用Get-ChildItem cmdlet – Ramankingdom

+2

50k的文件描述是没有用的,不要打扰。 – wOxxOm

+0

此链接将完整帮助 https://stackoverflow.com/questions/33511772/read-file-line-by-line-in-powershell – Ramankingdom

回答

0

首先不打扰50k +数据。它不会占用那么多的内存。其次,它不会随时加载行,除非您只指定加载该行。它会加载所有。第三,如果那么重要,你可以考虑把它分成块,这将帮助你减小尺寸。

如果获得内容,它也会作为一个整体加载。即使我们有一个尾巴swich