我有脚本:
$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=": " + $totalsizeform + " GB"
Echo $varia2
echo '</b><br>'
echo '<hr />'
’’
echo '</font>'
$suma=$suma+$totalSize
$sumasum="{0:N2}" -f $suma
}
你已经删除了$folders和SizeGB,我不知道如何更改它才能工作:-(