我想构建一个执行以下操作的脚本:
这将在备份/还原脚本中使用。在进行备份之前,我们想了解备份的总大小,以及其中包含大量数据的文件夹。
输出类似于:
Total size: 1456MB
C:/folder1 100MB
C:/folder2 123MB
C:/folder3/folder1 1233MB
对于某些人来说也许很简单。我已经搜索并尝试了几个小时,但没有得到我所需要的。任何使用哪种代码语言或特定脚本的建议都将有所帮助!
答案 0 :(得分: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
}