【发布时间】:2021-08-14 02:10:16
【问题描述】:
我有脚本:
$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
}
}
结果,我得到了这样的结果:
计数...程序 0,0629891464486718
计数... Pictures_temp 1,2558867437765
计数...温度 13,7048118021339
计数... Windows 0
我不知道为什么我没有获得“程序文件”或“用户”文件夹,例如(权限问题?我有管理员权限)。以及为什么 Windows 返回 0。我想以不同的方式对待系统文件夹。但是有什么办法可以解决吗? 我的一些网络文件夹也发生了同样的事情,我得到了错误的数据。
【问题讨论】:
-
您是否以管理员身份运行 PowerShell?
-
? {$_.Attributes -eq "Directory"}可以替换为-Directory -
@TheMadTechnician - 是的,作为管理员。 @SantiagoSquarzon - 谢谢。使用
$folders = (Get-Childitem $z -Directory),我得到“程序文件”和“用户”文件夹。但就像 Windows 文件夹一样 - 返回 0。 -
更准确地说,“Program Files”和“Program Files (x86)”是不同的:计数 ... Program Files - 0 计数 ... Program Files (x86) - 4.50032385252416
-
尝试添加
-Force
标签: powershell directory size