Добавление размеров файлов в список Get-ChildItem

Моя цель - выяснить, сколько места занимает все изображения на моих сетевых дисках.

Итак, моя команда для получения списка всех изображений такова:

Get-ChildItem -recurse -include *jpg,*bmp,*png \\server01\folder

Затем я хотел бы просто получить размер файла (Length).

Get-ChildItem -recurse -include *jpg,*bmp,*png \\server01\folder | Select-Object -property Length

Теперь это выдает:

                                         Length
                                         ------
                                         85554
                                         54841
                                         87129
                                        843314  

Я не знаю, почему он выровнен по правому краю, но я хочу захватить каждую длину и добавить их все вместе. Я потерял и пробовал все, что знаю (что не так много, поскольку я новичок в PS), попытался найти Google, но не смог найти никаких релевантных результатов.

Любая помощь или альтернативные методы оценены!

Ответ 1

Используйте командлет Measure-Object:

$files = Get-ChildItem -Recurse -Include *jpg,*bmp,*png \\server01\folder
$totalSize = ($files | Measure-Object -Sum Length).Sum

Чтобы получить размер в GB, разделите значение на 1GB:

$totalSize = ($files | Measure-Object -Sum Length).Sum / 1GB

Ответ 2

Вы можете сделать это как один лайнер с чем-то вроде этого.

Get-Childitem -path  "C:\Program Files\Internet Explorer" | Select-Object 
Name, @{Name="KBytes";Expression={ "{0:N0}" -f ($_.Length / 1KB) }}

Name          KBytes
----          ------
en-US         0
images        0
SIGNUP        0
ExtExport.exe 52
hmmapi.dll    53
iediagcmd.exe 500
ieinstal.exe  490
ielowutil.exe 219
IEShims.dll   398
iexplore.exe  805
sqmapi.dll    49