Windows – PowerShell脚本获取目录的总大小

前端之家收集整理的这篇文章主要介绍了Windows – PowerShell脚本获取目录的总大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要递归的获取一个目录的大小。我每个月都要这样做,所以我想制作一个 PowerShell脚本来做到这一点。

我该怎么做?

尝试以下
function Get-DirectorySize() {
  param ([string]$root = $(resolve-path .))
  gci -re $root |
    ?{ -not $_.PSIsContainer } | 
    measure-object -sum -property Length
}

这实际上产生了一个摘要对象,其中将包括项数。你可以只是抓住Sum属性,而这将是长度的总和

$sum = (Get-DirectorySize "Some\File\Path").Sum

EDIT为什么这样工作?

我们来分解管道的组件。 gci -re $ root命令将从起始$根目录中递归获取所有项目,然后将其推入管道。那么$ root下的每个文件和目录都将通过第二个表达式?{-not $ _。PSIsContainer}。传递给此表达式的每个文件/目录可以通过变量$ _访问。前面的?表示这是一个过滤器表达式,仅保留符合此条件的管道中的值。 PSIsContainer方法将为目录返回true。因此,过滤器表达式只保留文件值。最终的cmdlet measure对象将对流水线中剩余的所有值的总和值进行总和。所以它本质上是为当前目录下的所有文件(递归)调用Fileinfo.Length,并对值进行求和。

猜你在找的Windows相关文章