4

Я хочу, чтобы скрипт PowerShell получал размер сетевой папки (\\pmintl.net\rbsdata\SPA_BB01) размером примерно 100 ТБ со множеством подпапок.

Я пробовал разные сценарии без какой-либо удачи (ниже приведен пример того, что я пробовал, но это зависало):

$startFolder = "\\pmintl.net\rbsdata\SPA_BB01"
"Folder use {0:0,0.00} MB" -f ((Get-ChildItem -R $startFolder | measure-object length -Sum).Sum / 1TB)

1 ответ1

2

Ниже приведены два скрипта PowerShell: первый получает общее количество папок, а второй - разбивку каждой подпапки (имейте в виду, что если папка ОГРОМНА, это может занять некоторое время)...

Папка:

$colItems = (Get-ChildItem "\\pmintl.net\rbsdata\SPA_BB01" -recurse | Measure-Object -property length -sum)
"{0:N2}" -f ($colItems.sum / 1MB) + " MB"

Папка, включающая подпапки:

$startFolder = "\\pmintl.net\rbsdata\SPA_BB01"

$colItems = (Get-ChildItem $startFolder | Measure-Object -property length -sum)
"$startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB"

$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
    {
        $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
        $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
    }

Возможно, вы захотите ознакомиться с этой статьей TechNet, в которой более подробно объясняется, в том числе более подробно рассказывается о свойствах / дополнительной информации, которую можно получить.

https://technet.microsoft.com/en-us/library/ff730945.aspx

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .