ls -r | ?{-not $_.psiscontainer} | group extension | select name, count, @{n='average'; e={($_.group | measure -a length).average}} | ft -a @{n='Extension'; e={$_.name}}, count, @{n='Average Size (KB)'; e={$_.average/1kb}; f='{0:N2}'}
Команда ls -r
используется для рекурсивного отображения списка файлов и папок в указанной директории и всех ее поддиректориях.
Символ |
(труба) используется для перенаправления вывода команды слева к следующей команде справа.
Фрагмент ?{-not $_.psiscontainer}
используется для фильтрации списка файлов, чтобы исключить директории.
Команда group extension
группирует файлы по расширению.
select name, count, @{n='average'; e={($_.group | measure -a length).average}}
отбирает имя расширения, количество файлов в группе и вычисляет средний размер файлов в каждой группе.
ft -a @{n='Extension'; e={$_.name}}, count, @{n='Average Size (KB)'; e={$_.average/1kb}; f='{0:N2}'}
форматирует вывод таблицей, отображая расширение, количество файлов и средний размер. Размер конвертируется в килобайты и отображается с двумя знаками после запятой.
Альтернативой данной команде может быть использование Get-ChildItem
вместо ls
, а затем использование других команд или скриптов для группировки и вычисления среднего размера файлов.