大小文件夹返回0



我有脚本:

$array = @("c:")
foreach ($z in $array) 
{

$FileSystemObject = New-Object -com  Scripting.FileSystemObject
$folders = (Get-Childitem $z | ? {$_.Attributes -eq "Directory"})
foreach ($folder in $folders)
{
Write-Host "Counting for..." "$folder "
$FileSystemObject.GetFolder($folder.FullName).Size/1GB                            
}
}

结果,我得到了这样的东西:

正在计数。。。程序00629891464486718

正在计数。。。图片_图片12558867437765

正在计数。。。温度13704811021339

正在计数。。。Windows 0

我不知道为什么我没有得到";程序文件";或";用户";文件夹,例如(权限问题?我有管理权限(。以及Windows返回0的原因。我想,对系统文件夹的处理方式不同。但是有什么办法可以解决吗?同样的事情也发生在我的一些网络文件夹上,我得到了错误的数据。

我确实得到了与此一致的结果。请注意,在拒绝访问子项目的情况下,它会输出错误。以管理员身份运行,或者处理$error以正确丢弃这些错误。

$array = @("c:")
foreach ($z in $array) 
{   Get-Childitem $z | Where-Object { $_.PSIsContainer } | ForEach-Object {
Write-Host "  for..." "$_"
((Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum)/1Gb
}
}

或者,尊重初始脚本

$array = @("c:")
foreach ($z in $array) 
{   $folders = (Get-Childitem $z | Where-Object { $_.PSIsContainer })
$folders | ForEach-Object {
Write-Host "  for..." "$_"
((Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum)/1Gb
}
Clear-variable -name folders -ErrorAction SilentlyContinue
}

@user10722100我能再问你一个提示吗?我的剧本更大。我展示了较短的版本,因为我认为它会更容易。但现在我有问题来实现你的版本:(

$array = @("C:")

foreach ($z in $array) 
{
Write-Host "[$((get-date).ToString("yyyy-MM-dd__HH-mm-ss"))] Counting for" $z "..."
echo '<pre>'

$FileSystemObject = New-Object -com  Scripting.FileSystemObject
$folders = (Get-Childitem $z -Directory)
foreach ($folder in $folders)
{
$folder | Add-Member -MemberType NoteProperty -Name "SizeGB" –Value(($FileSystemObject.GetFolder($folder.FullName).Size) / 1GB)
}

$folders | sort -Property SizeGB -Descending | where {$_.SizeGB -gt 1} | select fullname,@{n=’Size in GB’;e={[math]::Round($_.SizeGB,2)}} | Format-Table -AutoSize

echo '</pre>'

$totalSize = (($folders | Measure-Object 'SizeGB' -Sum).Sum)
$totalsizeform="{0:N2}" -f $totalSize

echo "Total size for "
echo '<b>'
echo $z
echo '<font color="green">'
$varia2=": &nbsp;&nbsp;&nbsp;&nbsp;" + $totalsizeform + " GB"
Echo $varia2
echo '</b><br>'
echo '<hr />'
’’
echo '</font>'

$suma=$suma+$totalSize
$sumasum="{0:N2}" -f $suma
}

你已经删除了$folders和SizeGB,我不知道如何更改它才能工作:-(

最新更新