我試圖使用PowerShell下面PowerShell來查找文件夾/文件大小
$StartFolder = "D:\"
$Output = "C:\Temp\test-d.csv"
Add-Content -Value "Folder Path|Size" -Path $Output
$colItems = (Get-ChildItem $startFolder -Recurse | Measure-Object -Property Length -Sum)
"$StartFolder -- " + "{0:N2}" -f ($colItems.Sum/1MB) + " MB" # | Out-File $Output
$colItems = (Get-ChildItem $startFolder -Recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems) {
$subFolderItems = (Get-ChildItem $i.FullName -Recurse | Measure-Object -Property Length -Sum)
$i.FullName + "|" + "{0:N2}" -f ($subFolderItems.Sum/1MB) + " MB" | Out-File $Output -Append
}
我收到錯誤提到獲得的文件夾/文件大小寫一個腳本如下所述:
Measure-Object : The property "Length" cannot be found in the input for any objects. At line:12 char:65 + $subFolderItems = (Get-ChildItem $i.FullName -Recurse | Measure-Object - ... + + CategoryInfo : InvalidArgument: (:) [Measure-Object], PSArgumentException + FullyQualifiedErrorId : GenericMeasurePropertyNotFound,Microsoft.PowerShell.Commands.MeasureObjectCommand Measure-Object : The property "Length" cannot be found in the input for any objects. At line:12 char:65 + $subFolderItems = (Get-ChildItem $i.FullName -Recurse | Measure-Object - ... + + CategoryInfo : InvalidArgument: (:) [Measure-Object], PSArgumentException + FullyQualifiedErrorId : GenericMeasurePropertyNotFound,Microsoft.PowerShell.Commands.MeasureObjectCommand
此外,當我的目標C:盤我收到「拒絕訪問」上的一些系統文件:
Get-ChildItem : Access to the path 'C:\Windows\System32\LogFiles\WMI\RtBackup' is denied. At line:12 char:28 + $subFolderItems = (Get-ChildItem $i.FullName -Recurse | Measure-Object - ... + + CategoryInfo : PermissionDenied: (C:\Windows\Syst...es\WMI\RtBackup:String) [Get-ChildItem], UnauthorizedAccessException + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand
如果您不是管理員或沒有權限,您將無法修改系統目錄。因此,您可以嘗試以管理員身份運行或提供必要的權限。 由於無法訪問,因此無法挑選長度。 –
爲什麼你會用這樣的管道連接table viewl? PowerShell內置了對csv,json的支持,並且還有用於excel的模塊... – Clijsters