powershell 查找文件夹和子文件夹(不是文件)的相对路径递归大小?

kgsdhlau  于 2022-12-04  发布在  Shell
关注(0)|答案(1)|浏览(126)

我试图找到相对路径的文件夹和子文件夹(不是文件)的长度,但我没有得到的长度。

$srcpth = "C:\Program Files\Microsoft SQL Server" 
$files = Get-ChildItem -Path $srcpth -Directory -Recurse
$result = foreach ($f in $files) {
    [pscustomobject][ordered]@{
        RelativePath =  $f.fullname.remove(0,($srcpth.length))
        FileSize     =  '{0:N1}' -f ($f_.Length/1KB)
    }
}
$result | Export-Csv "c:\files\o2.csv"

我试过这个片段,它显示文件夹和子文件夹在相对路径,但它不显示他们的长度。有人帮我吗?

egdjgwm8

egdjgwm81#

正如所注解的,您需要为每个目录计算文件大小的总和。
尝试

$srcpth = "C:\Program Files\Microsoft SQL Server" 
$files  = Get-ChildItem -Path $srcpth -Directory -Recurse
$result = foreach ($f in $files) {
    [pscustomobject][ordered]@{
        RelativePath =  $f.FullName.Remove(0, $srcpth.Length )
        FileSize     =  '{0:N1}' -f ((Get-ChildItem -Path $f.FullName -File | Measure-Object -Property Length -Sum).Sum / 1KB)
    }
}
$result | Export-Csv "c:\files\o2.csv" -NoTypeInformation

相关问题