通常,在一个 Windows基于 PC 的 PC,您可以通过右键单击项目或文件夹然后从上下文菜单中选择属性来检查项目或文件夹的大小。 在这篇文章中,我们将向您展示 如何使用 PowerShell 检查或获取文件夹大小 在 Windows 11/10。
您可能希望使用 PowerShell 而不是传统方式获取文件夹的用例是,如果项目或文件夹的大小明显更大——例如 example, 大于 100 GB。 在这种情况下,使用传统方法可能需要一段时间才能让文件夹属性窗口最终填充项目的大小——更重要的是,显示的可能不是文件夹的实际大小。
出于某种原因,您可能需要一个文件夹的大小——例如 example,估计移动文件夹(移动到本地驱动器、外部驱动器或云存储上的另一个位置)所需的时间或持续时间,或者如果文件夹相当大,只需将其删除以释放硬盘驱动器上的空间——你可以使用 PowerShell 立即获取文件夹/目录的大小。 我们将在以下小标题下讨论该主题。
- 用于获取文件夹大小的 PowerShell 命令
- 以字节、MB 和 GB 为单位获取文件夹大小
- 以十进制获取文件夹大小
- 获取特定文件类型项目的大小
- 获取文件夹和子文件夹大小
- 使用时间过滤器获取文件夹和子文件夹的大小
- 使用 PowerShell 脚本获取所有子目录文件夹大小
读: 管理文件和文件夹 Windows – 提示与技巧
1]PowerShell 命令获取文件夹大小
以下是 2 个主要的 PowerShell cmdlet,它们可以与开关和参数一起使用,以根据您的要求过滤结果以获得文件夹的大小。
别名是命令的替代名称,因此您不必每次都键入整个命令。
读: 分析 Windows 组件商店或 WinSxS
2]以字节、MB 和 GB 为单位获取文件夹大小
该 cmdlet 将仅获取指定文件夹和其中项目的大小,结果将不包括子目录内项目的大小。 为了 example,我们将运行一个命令来获取我们 PC 上的 C:UsersChidum.OsobaluDocumentsTWC_related 文件夹的大小。 将 PathToFolder 占位符替换为要获取其大小的文件夹/目录的完整路径。
文件夹大小(字节):
Get-ChildItem PathToFolder | Measure-Object -Property Length -sum
以 MB 为单位的文件夹大小:
(gci PathToFolder | measure Length -s).sum / 1Mb
以 GB 为单位的文件夹大小:
(gci PathToFolder | measure Length -s).sum / 1Gb
“总和”字段以字节、MB 和 GB 为单位显示文件夹的大小,视情况而定。
读: 如何删除空的 0 字节文件
3]以十进制获取文件夹大小
由于文件夹大小有很多小数位,因此以 MB 和 GB 为单位的文件夹大小的输出乍看之下难以理解。 因此,您可以运行以下命令以小数形式四舍五入结果。 代替 ”X” 加上您要将结果四舍五入到的小数位数,并根据需要指定 GB 或 MB。
"{0:NX} GB" -f ((gci PathToFolder | measure Length -s).sum / 1Gb)
4]获取特定文件类型项目的大小
如果要获取具有相同文件类型/扩展名的文件夹中所有项目的大小,请运行以下命令。 相应地替换 FileType/Extension 占位符。
(gci PathToFolder *.FileType/Extension | measure Length -s).sum / 1Gb
读: 如何一次创建多个不同名称的文件夹
5]获取文件夹和子文件夹的大小
要获取文件夹和子文件夹(包括里面的项目)的大小,您必须使用 -Recurse
用于推测的参数 -ErrorAction SilentlyContinue
绕过权限被拒绝等目录访问错误的参数。
要获取父目录和子目录的大小,您可以运行以下任一命令。
(gci PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb
"{0:NX} GB" -f ((gci –force PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
此 cmdlet 还将包括任何隐藏项的大小。
6]使用时间过滤器获取文件夹和子文件夹的大小
您可以获得父文件夹和子文件夹的大小,还可以应用过滤器来查找在特定日期、特定月份或特定年份创建的项目的大小。 您可以通过指定开始日期和结束日期来定义,这两个日期分别由 -gt
(大于)和 -lt
(小于)参数。 日期格式为 MM/DD/YY。
要获取在特定时间段内创建的包含子文件夹的文件夹的大小,请运行以下命令。 相应地替换 MM/DD/YY 占位符。
(gci -force PathToFolder –Recurse -ErrorAction SilentlyContinue | ? {$_.CreationTime -gt ‘MM/DD/YY’ -AND $_.CreationTime -lt ‘MM/DD/YY’}| measure Length -s).sum / 1Gb
您还可以使用前面给出的命令应用这些过滤器,以仅获取父文件夹的文件夹大小。
读:使用命令提示符查找文件和文件夹所有权信息
7]使用 PowerShell 脚本获取所有子目录文件夹大小
现在,让事情变得更复杂,让我们假设您必须获得文件夹中每个子目录的大小。 这也可以使用 PowerShell 来完成。 当然,要获取所有子目录文件夹大小(包括子目录内项目的大小)并以整洁的表格格式呈现,您可以使用以下代码创建并运行 PowerShell 脚本。
$targetfolder="DriveLetter:"
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue | ? { $_ -is [io.directoryinfo] } | % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length }
$foldername = $_.fullname
$foldersize="{0:N2}" -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
}
$dataColl | Out-GridView -Title “Size of all subdirectories in DriveLetter drive”
相应地替换上面代码中的 DriveLetter 占位符,并确保打开 PowerShell 脚本执行。
就是这样!
另读: 通过命令提示符管理文件和文件夹的有用命令
有没有办法查看文件夹的大小 Windows?
检查文件夹大小的常规方法是打开文件资源管理器并右键单击要查看大小的文件、文件夹或驱动器。 从出现的菜单中,选择属性,您将看到文件/驱动器的总大小。 执行相同任务的非常规方法是使用 PowerShell,正如我们在上面这篇文章中所演示的那样。
列出文件夹和大小的 DOS 命令是什么?
这 dir
命令显示有关文件和目录的信息,以及有多少磁盘空间可用。 默认情况下,该命令显示当前目录中每个文件的名称、大小和最后修改时间。
读:使用命令提示符和 PowerShell 列出硬盘驱动器。