计算多个文件夹的文件夹大小[关闭]
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 我将尝试理解代码中的所有内容并提出相应的问题以上是关于计算多个文件夹的文件夹大小[关闭]的主要内容,如果未能解决你的问题,请参考以下文章