В Linux я могу сгенерировать вывод CSV с помощью следующей команды
du -hs /home/*/imap/*/* | sort -rh | sed 's/\//\t/g' | awk '{print $5 " " $6 " " $1}' | sed 's/ /,/g'
Эта команда выводит CSV-файл со следующей структурой:
domain,username,userfoldersize
Я пытаюсь получить аналогичный вывод с PowerShell.
Я нашел этот код в Интернете, но он не отображает правильные размеры. Размеры папок, превышающие размеры в ГБ, по-прежнему отображаются в МБ. Кроме того, это идет далеко в подкаталоге.
$startFolder = 'C:\path\to\mail\domain\user'
$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"
}
У меня есть такой каталог: C:\path\to\mail\domain\user
и я хочу, чтобы он отображал полный путь к папке user
и отображал размер папки user
. В удобочитаемом формате. Например: 500 МБ, 5 ГБ и т. д.