【发布时间】:2026-02-24 05:10:01
【问题描述】:
如何使用 PowerShell 获取文件的大小,例如 .mdf、.ldf 和其他文件扩展名,以便找出占用大量空间的文件格式。
此外,我想获取每个文件的作者Last Modified By。
我曾尝试使用 cmdlet Get-Item 或 Get-ChildItem 提取文件系统中存在的文件的信息,例如 D:\ 或 E:\。
【问题讨论】:
如何使用 PowerShell 获取文件的大小,例如 .mdf、.ldf 和其他文件扩展名,以便找出占用大量空间的文件格式。
此外,我想获取每个文件的作者Last Modified By。
我曾尝试使用 cmdlet Get-Item 或 Get-ChildItem 提取文件系统中存在的文件的信息,例如 D:\ 或 E:\。
【问题讨论】:
当您使用 Get-Item 或 Get-ChildItem 之类的 cmdlet 从文件系统中检索有关文件的信息时,它们会返回 FileInfo 对象,所有这些对象都具有 Length 属性 - 的大小(以字节为单位)磁盘上的那个文件。
例如,如果要查找目录结构中最大的 10 个文件,可以使用 Sort-Object 和 Select-Object,如下所示:
Get-ChildItem -File -Recurse | Sort-Object Length -Descending| Select-Object FullName,Length -First 10
【讨论】:
如果您想知道某个文件夹或驱动器中有多少特定文件类型的Mb,您可以使用以下命令:
Get-ChildItem "C:\" -Filter "*.mdf" -Recurse | %{$_.Length} | measure -Sum | select -ExpandProperty Sum | %{"$($_/1024/1024) Mb"}
只需更改每个分机的文件夹和-Filter 参数,您将在Mb 中返回它们的金额。
注意:在较大的目录上运行它需要一些时间来递归。
【讨论】: