Measure-Object
Рассчитывает числовые свойства объектов, а также количество знаков, слов и строк в строковых объектах, например в текстовых файлах.
Синтаксис
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-StandardDeviation]
[-Sum]
[-AllStats]
[-Average]
[-Maximum]
[-Minimum]
[<CommonParameters>]
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-Line]
[-Word]
[-Character]
[-IgnoreWhiteSpace]
[<CommonParameters>]
Описание
Командлет Measure-Object
вычисляет значения свойств определенных типов объекта.
Measure-Object
выполняет три типа измерений в зависимости от параметров команды.
Командлет Measure-Object
выполняет вычисления по значениям свойств объектов. Можно использовать Measure-Object
для подсчета объектов или подсчета объектов с указанным свойством. Можно также использовать Measure-Object
для вычисления минимального, максимального значения, суммы, стандартногоdeviation и среднего числа значений. Для объектов String можно также использовать Measure-Object
для подсчета количества строк, слов и символов.
Примеры
Пример 1. Подсчет файлов и папок в каталоге
Эта команда определяет количество файлов и папок в текущем каталоге.
Get-ChildItem | Measure-Object
Пример 2. Измерение файлов в каталоге
Эта команда отображает минимальный, максимальный и суммарный размер всех файлов в текущем каталоге и средний размер файла в каталоге.
Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Sum -Average
Пример 3. Измерение текста в текстовом файле
Эта команда отображает количество знаков, слов и строк в файле Text.txt.
Без необработанного параметра Get-Content
выводит файл в виде массива строк.
Первая команда используется Set-Content
для добавления текста по умолчанию в файл.
"One", "Two", "Three", "Four" | Set-Content -Path C:\Temp\tmp.txt
Get-Content C:\Temp\tmp.txt | Measure-Object -Character -Line -Word
Lines Words Characters Property
----- ----- ---------- --------
4 4 15
Пример 4. Измерение объектов, содержащих указанное свойство
В этом примере число объектов с свойством DisplayName . Первые две команды извлекают все службы и процессы на локальном компьютере. Третья команда подсчитывает объединенное количество служб и процессов. Последняя команда объединяет две коллекции и передает результат Measure-Object
.
Объект System.Diagnostics.Process не имеет свойства DisplayName и остается без окончательного количества.
$services = Get-Service
$processes = Get-Process
$services + $processes | Measure-Object
$services + $processes | Measure-Object -Property DisplayName
Count : 682
Average :
Sum :
Maximum :
Minimum :
Property :
Count : 290
Average :
Sum :
Maximum :
Minimum :
Property : DisplayName
Пример 5. Измерение содержимого CSV-файла
Эта команда вычисляет среднее время работы сотрудников в компании.
Файл ServiceYrs.csv
представляет собой CSV-файл, содержащий номер сотрудника и годы обслуживания каждого сотрудника. Первая строка в таблице — это строка заголовка EmpNo, Years.
Import-Csv
При импорте файла результатом является PSCustomObject со свойствами EmpNo и Years.
Вы можете вычислить Measure-Object
значения этих свойств так же, как и любое другое свойство объекта.
Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average
Пример 6. Измерение логических значений
В этом примере показано, как Measure-Object
можно измерять логические значения.
В этом случае используется логическое свойство PSIsContainer для измерения частоты папок (vs. files) в текущем каталоге.
Get-ChildItem | Measure-Object -Property psiscontainer -Maximum -Sum -Minimum -Average
Count : 126
Average : 0.0634920634920635
Sum : 8
Maximum : 1
Minimum : 0
StandardDeviation :
Property : PSIsContainer
Пример 7. Измерение строк
В следующем примере измеряется количество строк, сначала одна строка, а затем по нескольким строкам. Символ `n
новой строки разделяет строки на несколько строк.
# The newline character `n separates the string into separate lines, as shown in the output.
"One`nTwo`nThree"
"One`nTwo`nThree" | Measure-Object -Line
One
Two
Three
Lines Words Characters Property
----- ----- ---------- --------
3
# The first string counts as a single line.
# The second string is separated into two lines by the newline character.
"One", "Two`nThree" | Measure-Object -Line
Lines Words Characters Property
----- ----- ---------- --------
3
# The Word switch counts the number of words in each InputObject
# Each InputObject is treated as a single line.
"One, Two", "Three", "Four Five" | Measure-Object -Word -Line
Lines Words Characters Property
----- ----- ---------- --------
3 5
Пример 8. Измерение всех значений
Начиная с PowerShell 6 параметр AllStats Measure-Object
позволяет измерять всю статистику вместе.
1..5 | Measure-Object -AllStats
Count : 5
Average : 3
Sum : 15
Maximum : 5
Minimum : 1
StandardDeviation : 1.58113883008419
Property :
Пример 9. Измерение с помощью свойств scriptblock
Начиная с PowerShell 6, Measure-Object
поддерживает свойства ScriptBlock . В следующем примере показано, как использовать свойство ScriptBlock для определения размера в Мегабайтах всех файлов в каталоге.
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
Пример 10. Хэш-таблицы мер
Начиная с PowerShell 6, Measure-Object
поддерживает измерение хэш-входных данных. В следующем примере определяется наибольшее значение для num
ключа 3 хэш-объектов .
@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num
Count : 3
Average :
Sum :
Maximum : 5
Minimum :
StandardDeviation :
Property : num
Пример 11. Измерение стандартного отклонения
Начиная с PowerShell 6, Measure-Object
поддерживает -StandardDeviation
этот параметр. В следующем примере определяется стандартное отклонение ЦП, используемого всеми процессами. Большое отклонение означает небольшое количество процессов, потребляющих большую часть ЦП.
Get-Process | Measure-Object -Average -StandardDeviation CPU
Count : 303
Average : 163.032384488449
Sum :
Maximum :
Minimum :
StandardDeviation : 859.444048419069
Property : CPU
Пример 12. Измерение с помощью подстановочных знаков
Начиная с PowerShell 6, Measure-Object
поддерживает измерение объектов с помощью подстановочных знаков в именах свойств. В следующем примере определяется максимальное использование памяти страниц между набором процессов.
Get-Process | Measure-Object -Maximum *paged*memory*size
Count : 303
Average :
Sum :
Maximum : 735784
Minimum :
StandardDeviation :
Property : NonpagedSystemMemorySize
Count : 303
Average :
Sum :
Maximum : 352104448
Minimum :
StandardDeviation :
Property : PagedMemorySize
Count : 303
Average :
Sum :
Maximum : 2201968
Minimum :
StandardDeviation :
Property : PagedSystemMemorySize
Count : 303
Average :
Sum :
Maximum : 719032320
Minimum :
StandardDeviation :
Property : PeakPagedMemorySize
Параметры
-AllStats
Указывает, что командлет отображает всю статистику указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Average
Указывает, что командлет отображает среднее значение указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Character
Указывает, что командлет подсчитывает количество символов в входных объектах.
Примечание.
Параметр Word, Char и Line учитывается внутри каждого входного объекта, а также между входными объектами. См. пример 7.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-IgnoreWhiteSpace
Указывает, что командлет игнорирует пробелы в числах символов. По умолчанию пробелы учитываются.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает, какие объекты нужно измерять. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.
При использовании параметра InputObject вместо Measure-Object
результатов Measure-Object
команды piping в значение InputObject рассматривается как один объект.
Рекомендуется использовать Measure-Object
в конвейере, если требуется измерять коллекцию объектов на основе того, имеют ли объекты определенные значения в определенных свойствах.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Line
Указывает, что командлет подсчитывает количество строк в входных объектах.
Примечание.
Параметр Word, Char и Line учитывается внутри каждого входного объекта, а также между входными объектами. См. пример 7.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Maximum
Указывает, что командлет отображает максимальное значение указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Minimum
Указывает, что командлет отображает минимальное значение указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Property
Указывает одно или несколько свойств для измерения. Если вы не указываете другие меры, Measure-Object
подсчитывает объекты с заданными свойствами.
Значение параметра Property может быть новым вычисляемым свойством. Вычисляемое свойство должно быть блоком скрипта. Дополнительные сведения см. в about_Calculated_Properties.
Тип: | PSPropertyExpression[] |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-StandardDeviation
Указывает, что командлет отображает стандартное отклонение значений указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Sum
Указывает, что командлет отображает сумму значений указанных свойств.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Word
Указывает, что командлет подсчитывает количество слов в входных объектах.
Примечание.
Параметр Word, Char и Line учитывается внутри каждого входного объекта, а также между входными объектами. См. пример 7.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объекты можно передать в этот командлет.
Выходные данные
По умолчанию этот командлет возвращает объект GenericMeasureInfo .
При использовании параметра Word этот командлет возвращает объект TextMeasureInfo .
Примечания
PowerShell включает следующие псевдонимы для Measure-Object
:
- Все платформы:
measure
Начиная с PowerShell 7.3, Measure-Object
больше не возвращает ошибку при обработке объекта, который отсутствует свойство, если вы не работаете в StrictMode. В StrictModeMeasure-Object
возвращается System.Management.Automation.PSArgumentException
при обработке объекта, который отсутствует указанное свойство.
Связанные ссылки
PowerShell