Добавление размеров файлов в список 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