Powershell Get-Childitem高内存使用率

问题描述 投票:0回答:1

我想扫描一些具有数百万个文件的大型目录,以递归汇总第二级目录名称,大小和文件数。我将代码运行了几个小时,但由于Powershell占用了13GB内存,因此它停留在中间的某个位置。知道为什么内存使用率如此之高吗?

$mailboxes = Get-ChildItem E:\data -Directory | Get-ChildItem -Directory | Select -ExpandProperty FullName


foreach($line in $mailboxes) {
$s = $line.split("\\")
$files = Get-ChildItem $line -File -Recurse -Include *.eml
$mailbox_path = $line
$mailbox = $s[-1]
$size = $files | Measure-Object Length -Sum | select -ExpandProperty Sum
$count = $files.Count
"$mailbox_path`t$mailbox`t$size`t$count" | Out-File 'D:\scripts\summary.txt' -Append
}
powershell memory get-childitem
1个回答
0
投票

看看这是否更好

$mailboxes = Get-ChildItem E:\data -Directory | Get-ChildItem -Directory
$OutputPath = 'D:\scripts\summary.csv'

foreach($line in $mailboxes) {

$files = Get-ChildItem $line.FullName -File -Recurse -Filter *.eml
$size = $files | Measure-Object Length -Sum | select -ExpandProperty Sum


[pscustomobject]@{MailBoxPath = $line.FullName;MailBox = $line.BaseName;FileSize = $size;FileCount = $files.count} | Export-Csv -Path $OutputPath -NoTypeInformation -Append
}
© www.soinside.com 2019 - 2024. All rights reserved.