如果您想检查哪些文件夹占用了磁盘空间,您可以检查文件夹的大小以了解哪些文件夹正在使用您的驱动器。 当您将大文件夹复制到 USB 驱动器或 Cloud- 记忆需要移动。 一个简单的方法来做到这一点 Windows 是使用文件资源管理器并打开文件夹属性对话框。
但是,文件资源管理器获取大文件夹的大小可能会很慢。 如果您想跨组织中的多台计算机管理文件和文件夹,那么这并不理想。 为了提供帮助,您可以使用 PowerShell 快速计算文件夹大小 Windows。
如何使用 PowerShell 计算文件夹的大小 Windows
要计算文件夹的大小,您需要使用两个 PowerShell cmdlet:Get-ChildItem 和 Measure-Object,后跟 Length 属性和 Sum 参数。
您可以使用 Get-ChildItem cmdlet 从指定目录及其子目录检索信息。 Measure-Object cmdlet 及其属性和参数计算 Get-ChildItem cmdlet(别名 cgi)返回的项目的长度属性总和。
如果您是 PowerShell 新手,您可能需要阅读我们对重要 PowerShell cmdlet 的说明,以了解 PowerShell 基础知识。
现在您已经熟悉了 PowerShell 命令,下面介绍如何使用它们来查找任何文件夹大小。
- 按 键 赢 键和类型 力量 Shell。
- 然后右键单击 Windows 力量 Shell 并选择 以管理员身份执行。 点击 是的 提示时 用户帐户控制。
- 在 PowerShell 窗口中,输入以下命令:
Get-ChildItem FolderPath | Measure-Object -Property Length -sum
- 替换上面的命令 文件夹路径 与存储文件夹的目录路径。 例如,如果您想计算下载文件夹的大小 乙: 驱动器,那么完整的命令如下所示:
Get-ChildItem E:Download | Measure-Object -Property Length -sum
- 返回结果显示文件夹中的项目数及其大小(以字节为单位)。 您需要将总数除以 1024 确定尺寸 知识库 (千字节)。 分享它 1024 再次确定尺寸 MB (兆字节)等等。
或者,您可以使用 .sum 属性获取总大小并将其除以 100 万或十亿以将其转换为兆字节或千兆字节。
例如,如果您想知道以千兆字节 (MB) 为单位的值,请键入以下命令并按 Enter:
(gci E:Download | measure Length -s).sum / 1Mb
也更换 1MB 和 1GB 获取文件夹大小(以 GB 为单位)。
(gci E:Download | measure Length -s).sum / 1Gb
如果要确定目录中特定文件类型的大小,可以使用通配符 * 后跟文件扩展名类型。 仅显示指定文件类型的文件大小。
例如,要了解图像在文件夹中占用了多少空间,请使用以下命令:
(gci E:download *.jpg | measure Length -s).sum / 1Mb
通过添加通配符,您可以确定特定文件类型是否占用文件夹中的最多空间。 然后,您可以根据文件扩展名过滤内容,并根据需要删除或移动它。
如何使用 PowerShell 确定子文件夹大小
上面的命令仅计算主目录或文件夹的大小。 要计算指定目录及其子目录中文件的总大小,需要添加以下内容 -递归 上述命令的参数。 另外,我们使用-force参数来访问隐藏文件和系统文件。
例如,要获取 C:Users 目录及其子目录(包括隐藏文件)的总大小,PowerShell 命令如下所示:
((gci -force c:Users -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
本例中的输出显示大约 54 GB。 作为 c:users 文件夹的总大小。 在上面的命令中,-ErrorAction SilentlyContinue 参数用于抑制在此过程中可能出现的任何错误消息。
如何使用 PowerShell 以表格格式查找子文件夹大小
如果您想单独了解所有子文件夹的大小,可以运行 PowerShell 脚本来获取所有子文件夹及其大小的图形视图。 当您有一个包含多个子文件夹的大目录并且需要经常编辑它们时,脚本通常很有用。
要运行此脚本,您可以使用 PowerShell ISE。 就是这样完成的:
- 按 键 获胜键 并输入 PowerShell ISE。 点击 Windows PowerShell ISE 从搜索结果来看。
- 接下来,将以下命令复制并粘贴到 PowerShell ISE 控制台中。 确保将目录从 c: 更改为您的首选目录。
$targetfolder = 'C:'
$dataColl = Get-ChildItem -Force $targetfolder -Directory -ErrorAction SilentlyContinue | ForEach-Object {
$len = Get-ChildItem -Recurse -Force $_.FullName -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum
$foldername = $_.FullName
$foldersize = '{0:N2} GB' -f ($len / 1Gb)
[PSCustomObject]@{
foldername = $foldername
foldersizeGb = $foldersize
}
}
$dataColl | Out-GridView -Title "Size of Subdirectories in $targetfolder" - 然后点击 运行脚本 或按 F5 并等待脚本运行。 根据文件夹大小,您将看到一个“子目录的大小”对话框列出了所有子目录及其大小。
此外,您可以使用 PowerShell 比较运算符来筛选结果。 例如,要获取 2023 年 6 月至 2023 年 7 月期间创建的文件夹的文件大小,您可以使用以下命令:
(gci -force E:Download –Recurse -ErrorAction SilentlyContinue | ? {$_.CreationTime -gt '01/23/23' -AND $_.CreationTime -lt '02/23/23'}| measure Length -s).sum / 1Gb
在上面的命令中: “?” 是一个别名 其中对象 小命令, -gt、-AND、-It 是比较运算符和 创建时间 是一个条件。 该命令检查子目录中文件的创建时间是否在指定的日期范围内,只有满足条件时才显示输出。 如果出现错误,请确保命令中的日期和时间格式与系统格式匹配,然后重试。
使用 PowerShell 查找文件夹和子文件夹大小
文件资源管理器已打开 Windows 可以帮助您计算每个文件夹和文件的大小。 但是,如果您使用多个大型文件夹或需要管理组织中的数百台计算机,则使用 PowerShell 可以帮助您更快地完成工作。
但是,如果您更喜欢基于 GUI 的解决方案,请考虑使用磁盘分析器工具。 这些工具允许您可视化系统文件结构并查看详细说明占用系统上最多磁盘空间的内容的报告。