当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell - 获取文件夹的大小 [2 种方法]

作者:精品下载站 日期:2024-12-14 05:25:02 浏览:15 分类:玩电脑

PowerShell - 获取文件夹的大小 [2 种方法]


[玩转系统] PowerShell - 获取文件夹的大小 [2 种方法]

Get-ChildItemMeasure-Object 结合使用

Get-ChildItemMeasure-Object cmdlet 结合使用来获取指定目录中文件的大小。

获取指定目录下的文件大小:

Get-ChildItem C:\Users\DELL\Desktop\work | Measure-Object -Property Length -sum

输出 :

Count: 16
Average:
Sum: 208664
Maximum:
Minimum:
Property: Length

请注意,上述总和不包括子文件夹大小。如果您还想包含子文件夹,请将标题移至此部分。

Measure-Object cmdlet 用于计算对象的属性值。例如,我们可以用它来查看给定目录中所有文件和文件夹的最大、最小和总大小。

这里,Sum字段用于显示目录中所有文件的大小,count显示可用文件的数量。由-sum定义的开关参数用于添加Length字段中显示的每个文件的大小。注意:所有文件大小的总和以字节为单位。

您可以观察到,C:\Users\DELL\Desktop\work 目录中的文件总大小为 Sum中给出的 code208664/code 字节> 领域。因此,如果您想以 KBMBGB 为单位显示给定目录的总文件大小,请使用以下命令。

获取指定目录下的文件大小:

(gci C:\Users\DELL\Desktop\work | measure Length -s).sum / 1Kb
(gci C:\Users\DELL\Desktop\work | measure Length -s).sum / 1Gb
(gci C:\Users\DELL\Desktop\work | measure Length -s).sum / 1Mb

输出 :

203.7734375
0.000194333493709564
0.198997497558594

在上述命令中,gciGet-ChildItem cmdlet 的别名。要将大小四舍五入到小数点后两位,请检查以下内容:

获取指定目录下的文件大小:

"{0:N2} KB" -f ((gci C:\Users\DELL\Desktop\work | measure Length -s).sum /  1Kb)
"{0:N2} GB" -f ((gci C:\Users\DELL\Desktop\work | measure Length -s).sum / 1Gb)
"{0:N2} MB" -f ((gci C:\Users\DELL\Desktop\work | measure Length -s).sum / 1Mb)

输出 :

203.77 KB
0.00 GB
0.20 MB

我们可以从上面观察到,以千字节格式表示的目录大小(保留两位小数)分别为 203.77 KB0.00 GB0.20 MB。因此,我们使用 -f 和表达式 {0:N2} 来格式化结果,以获得带有两位小数的结果。

获取某种类型的文件大小

Get-ChildItemMeasure-Object(其别名为 measure)cmdlet 结合使用可获取指定目录中特定文件类型的大小。

获取某种类型的文件大小:

(gci C:\Users\DELL\Desktop\work *.md | measure Length -s).sum / 1Mb

输出 :

0.074549674987793

在上面的脚本中,使用gciGet-ChildItem cmdlet的别名)来获取指定目录中与指定文件类型匹配的所有文件的列表,让我们说.md

我们可以自定义此脚本以满足我们的需求。例如,我们可以更改路径和文件类型来搜索不同的目录或文件类型,或者我们可以添加对每个文件执行的其他操作。

获取目录大小,包括子文件夹

Get-ChildItemMeasure-Object cmdlet 结合使用可获取目录的大小,包括指定目录中的子文件夹。

获取目录大小(包括子文件夹):

"{0:N2} KB" -f ((gci -force C:\Users\DELL\Desktop\work -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Kb)

输出 :

560.64 KB

我们可以观察到 560.64 KB 被我的本地驱动器上的 C:\Users\DELL\Desktop\work 占用(您的可能会有所不同)。 -Recurse 参数用于获取目录(包括子目录)中文件的总大小,而 -force 参数用于考虑隐藏文件和系统文件的大小。上面,我们使用了 -ErrorAction SilentlyContinue

注意:如果设置了值为SilentlyContinueErrorAction,则当我们读取文件失败时,程序将继续读取文件或文件夹或文件夹,无论出于何种原因,例如缺乏权限或文件被另一个进程锁定。

使用 PSFolderSize 模块

使用 PSFolderSize 模块获取 PowerShell 中的文件大小。

注意:使用PSFolderSize模块。您可以从 PowerShell Gallery 下载它或通过运行以下命令进行安装:

安装 PSFolderSize 模块:

Install-Module PSFolderSize

安装模块后,我们可以使用 PSFolderSize cmdlet 来获取如何使用 PSFolderSize 的详细说明;运行这个命令:

使用 PSFolderSize 模块:

Get-Help Get-FolderSize -Detailed

注意:为了确保命令运行,您必须在继续之前设置执行策略。请点击此链接了解有关设置 ExecutionPolicy 的更多信息。

使用Get-FolderSize如下获取当前目录中所有文件的大小:

使用 PSFolderSize 模块:

Get-FolderSize

还可以从文件夹中获取任何特定文件的大小。例如,我只想获取 Downloads 文件夹的大小。请参阅以下示例来检查如何执行此操作:

使用 PSFolderSize 模块:

Get-FolderSize -Name Downloads

输出 :

FolderName                     SizeMB       SizeGB       FullPath
----------                     ------       ------       --------
Downloads                      495.82       0.48         C:\Users\DELL\Downloads

您可以运行以下命令来获取任何特定文件夹的大小。

使用 PSFolderSize 模块:

Get-FolderSize -Path C:\Users

输出 :

FolderName                     SizeMB       SizeGB       FullPath
----------                     ------       ------       --------
DELL                           7197.79      7.03         C:\Users\DELL
All Users                      1988.72      1.94         C:\Users\All Users
Default                        1.51            0         C:\Users\Default
Public                         0.01            0         C:\Users\Public
desktop                        0               0         C:\Users\desktop.ini
Default User                                             C:\Users\Default User

通过执行上面的命令,我们可以获得Users文件夹中所有文件的大小(以兆字节和千兆字节为单位)。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯