计算多个文件夹的文件夹大小[关闭]

Posted

技术标签:

【中文标题】计算多个文件夹的文件夹大小[关闭]【英文标题】:Calculate folder size for multiple folders [closed] 【发布时间】:2019-01-06 15:42:36 【问题描述】:

我想构建一个脚本:

计算特定路径的总文件夹大小; 以 MB 为单位显示每个路径的文件夹大小(包括递归子文件夹,不显示); 计算所有列出的文件夹的总大小。

这将用于备份/恢复脚本。在进行备份之前,我们想知道备份的总大小,以及哪些文件夹包含大量数据。

输出类似于:

Total size: 1456MB
    C:/folder1 100MB
    C:/folder2 123MB
    C:/folder3/folder1 1233MB

也许对你们中的一些人来说很简单。我已经搜索并尝试了几个小时,但从来没有得到我需要的东西。任何使用哪种代码语言或特定脚本的建议都会有所帮助!

【问题讨论】:

请告诉我们您到目前为止尝试了什么以及失败的地方。我们不是来为你编写所有代码的;)看看How to Ask 和minimal reproducible example。还有关于使用什么的问题,如果可能的话,总是使用 powershell。 gallery.technet.microsoft.com/scriptcenter/… 中的 sn-p 实际上工作得很好。我想知道是否有人有一个完全符合我要求的脚本。感谢您的建议:) 再次......我们不是来为您编写代码,也不是为基本任务提供脚本:) 如果您已经找到了一个可以解决一半问题的 sn-p,请尝试解决自己解决问题,如果遇到特定问题,请随时寻求帮助以解决问题。 再次......感谢您的建议:) 【参考方案1】:

你可以试试这个。

使用:Get-FileSize "C:\folder1","C:\folder2","C:\folder3\folder1"

输出:

Name                           Value
----                           ----- 
Total                          1456.00
C:\folder1                     100.00
C:\folder2                     123.00
C:\folder3\folder1             1233.00

由于 SUM 所做的计算,不会输入 MB...

Function Get-FileSize([string[]]$Array) 

$Output = @

Foreach($String in $Array)
    $FolderInfo = Get-ChildItem -Recurse $String
    $totalSize = "0:N2" -f (($FolderInfo | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB)
    $Output.add($String, $totalSize)

$Output.add("Total", "0:N2" -f ($Output.Values | Measure-Object -Sum).Sum)
$Output

【讨论】:

非常感谢,这是我想要构建的一个很好的开始。这是输出:名称值 ---- ----- C:\folder1 0,00 C: \folder3\folder1 1,27 C:\folder2 0,00 总计 127,00 我将尝试理解代码中的所有内容并提出相应的问题

以上是关于计算多个文件夹的文件夹大小[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥PDF文件大小这么小? [关闭]

目录中所有文件内容的总大小[关闭]

Python_计算文件夹大小

如何计算文件大小> 0的目录中有多少文件?

linux命令获取特定文件夹中存在的文件和目录的大小? [关闭]

文件大小以 ls 为单位? [关闭]