Подсчет или расчет числовых свойств объектов, таких как символы, слова и строки в строковых объектах, может быть утомительным. К счастью, командлет PowerShell Measure-Object
готов решить эту задачу.
В этом руководстве вы узнаете о мощи командлета Measure-Object
в автоматизации измерения свойств объектов в PowerShell.
Присоединяйтесь, чтобы улучшить свои навыки измерения объектов!
Предварительные требования
Это руководство – это практическое демонстрационное занятие. Для работы вам понадобится система с установленным PowerShell. В этом руководстве используется Windows 10 с PowerShell v7.
Подсчет файлов и папок
Знание количества файлов и папок в каталоге может быть полезным в различных сценариях. Одним из примеров является случай, когда вам необходимо отслеживать размер папки или проверять количество файлов в каталоге.
Командлет Measure-Object
подсчитывает количество файлов и папок в каталоге. Точное количество помогает вам лучше управлять и оптимизировать ресурсы системы.
Чтобы увидеть, как работает командлет Measure-Object
при подсчете файлов и папок:
1. Откройте PowerShell и выполните следующую команду Get-ChildItem
, чтобы подсчитать и вернуть общее количество файлов и папок (Measure-Object
) в текущем каталоге.
Ниже приведен вывод, указывающий на 4852 файлов и папок в текущем каталоге.

Возможно, вы хотите включить все файлы и подкаталоги в дерево каталогов рекурсивно. Если это так, добавьте параметр
-Recurse
, как показано ниже.Get-ChildItem -Recurse | Measure-Object
2. Затем выполните ту же команду, что и в первом шаге. Но на этот раз добавьте параметр -Directory
, чтобы подсчитать только общее количество каталогов в рабочем каталоге.
Как видно ниже, общее количество теперь меньше (135), поскольку команда учитывала только каталоги, исключая все остальные объекты.

3. Теперь выполните следующую команду, чтобы подсчитать исполняемые файлы (.exe
) в текущем каталоге.
Параметр -Filter
указывает командлету Get-ChildItem
фильтровать результаты и возвращать только файлы с указанным расширением (например, *.txt
, *.jpg
, *.csv
).

Измерение размеров файлов
Измерение длины и размеров объектов может помочь лучше управлять вашей системой, так как большие файлы влияют на производительность системы. Помимо подсчета свойств, вы также можете измерить длину и размер объектов с помощью командлета Measure-Object
.
Запустите код ниже, чтобы получить все файлы в текущем каталоге (Get-ChildItem
) и отобразить (Write-Host
) их соответствующие длины в байтах по умолчанию.
Нижеследующий код выводит каждое измерение в консоль, включая минимальный и максимальный размеры файлов, средний размер файла, сумму размеров файлов и общее количество файлов.
Ниже вы можете увидеть размеры, выраженные в байтах.

Возможно, вставка кода в консоль – не ваше. В таком случае сохраните код в файл сценария PowerShell и выполните его.
Теперь выполните следующие команды, чтобы получить файл в текущем каталоге, где (Where-Object
) его размер ($_.Length
) равен (-eq
) максимальному размеру файла ($files.Maximum
).
Вывод ниже показывает имя самого большого файла в текущем каталоге.

Измерение содержимого текстового файла
Вместо измерения размеров файлов вам может потребоваться определить количество строк, слов или символов в текстовом файле. В таком случае у cmdlet Measure-Object
есть много других параметров для измерения содержимого текстового файла.
Запустите код ниже, чтобы выполнить следующие действия: измерить содержимое текстового файла с помощью -Character
, -Line
и -Word
с помощью Measure-Object
и вывести (Write-Host
) измерения.
Убедитесь, что вы измените значения переменных $file_path
и $file_content
на свои предпочтительные.

Измерение логических значений
Логические значения – это значения, которые могут быть только true или false. В PowerShell логические значения часто используются для управления ходом скрипта, определения условия (true или false) или указания на успешное выполнение команды или ее сбой.
Измерение логических значений может быть полезным в различных сценариях, таких как:
- Подсчет количества значений true или false в наборе данных.
- Определение процента истинных значений относительно общего числа значений.
Эта информация может помочь принимать обоснованные решения при обработке или анализе данных.
Чтобы увидеть, как работает измерение логических значений:
Выполните следующие команды для подсчета суммы булевых значений (значений true по умолчанию) в массиве ($values
).
Ниже общее количество булевых значений – девять (9), в то время как сумма равна пяти (5), поскольку учитываются только значения true.
А что насчет значений false? Перейдите к следующему шагу и выполните еще несколько команд.

Теперь выполните код ниже, чтобы вычесть сумму значений true ($trueCount
) из общего количества булевых значений ($count
). Разница от уравнения – это общее количество значений false ($falseCount
).

Если измерение логических значений – повседневная задача, вы можете создать функцию, которую можно вызывать в любое время для выполнения задачи.
Измерение хеш-таблиц
Хеш-таблицы в PowerShell (коллекции пар ключ-значение) позволяют вам быстро и эффективно сохранять и извлекать данные. Если вам нужно знать количество элементов в хеш-таблице или максимальное и минимальное значения, позвольте командлету Measure-Object
измерить ваши хеш-таблицы.
Выполните следующие команды, чтобы найти значения свойства Num
с использованием параметров -Minimum
и -Maximum
в вашей хеш-таблице ($MyHastable
).

Измерение стандартного отклонения
Просмотр наборов данных может быть бессистемным, но это не обязательно так. Измерение стандартного отклонения удобно при понимании распределения значений набора данных. Вы также можете определить любые выбросы или необычные данные, влияющие на результаты.
Стандартное отклонение измеряет вариацию или разброс значений набора данных от среднего значения. Это измерение рассчитывается путем нахождения квадратного корня из дисперсии данных, которая является средним квадратом различий от среднего значения.
Запустите приведенный ниже код, чтобы вычислить и отобразить -Average
и -StandardDeviation
массива чисел, сохраненных в переменной $Numbers
.
В статистике среднее значение измеряет центральную тенденцию, описывая типичное или наиболее характерное значение набора данных.
Среднее значение рассчитывается путем сложения всех чисел в наборе данных и деления на общее количество значений. В этом примере набор данных составляет {10
, 20
, 30
, 40
, 50
} с суммой 150, а в наборе 5
чисел.
Следовательно, среднее значение рассчитывается ниже, и это 30
.
С другой стороны, стандартное отклонение измеряет разброс или дисперсию набора данных. Стандартное отклонение рассчитывается следующим образом:

Заключение
Измерение данных – это важная задача, а командлет PowerShell Measure-Object
– мощный инструмент для ее выполнения. В этом учебнике вы узнали, как измерять данные различными способами. Независимо от того, работаете ли вы с файлами, содержимым текстовых файлов, логическими значениями, строками, массивами или хеш-таблицами, измерение их может предоставить ценные идеи.
Теперь вы можете легко вычислить среднее, максимальное и минимальное значения ваших данных, а также измерить вариацию или разброс ваших данных. С помощью этих функций вы можете получить более глубокое понимание ваших данных и принимать обоснованные решения на основе анализа.
Обладая этими новыми знаниями, почему бы вам не расширить свой инструментарий PowerShell и не добавить Compare-Object
в свою арсенальную ячейку?
Source:
https://adamtheautomator.com/powershell-measure-object/