Get-ChildItem 内存溢出

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

我正在尝试清理我们的文件共享,并希望导出 7 年以上的所有文件列表,以便在批准删除之前呈现。

到目前为止我已经:

Get-ChildItem "D:\Shares\" -Recurse -File | Where-Object {$_.LastWriteTime -lt (get-date).AddYears(-7)} | select fullname,LastWriteTime,@{n='Length';e={$_.length / 1MB}}  | Export-Csv “C:\OldFiles.csv” -Force -NoTypeInformation

现在几乎立即耗尽内存,因为它缓存了它找到的每个文件。有没有办法让它只是导出-csv - 附加每个项目,这样它就不会一直将其保存在内存中?

powershell
1个回答
0
投票

您确实可以将 -Append 参数与 Export-Csv 一起使用来连续追加到 CSV 文件,而不是将所有内容缓存在内存中。

Export-Csv -Path "C:\OldFiles.csv" -Append -Force -NoTypeInformation
© www.soinside.com 2019 - 2024. All rights reserved.