Как использовать параметр «-Property» для командлета PowerShell «Measure-Object»?

Почему

$a = GPS AcroRd32 | Measure
$a.Count

работает, а

GPS AcroRd32 | Measure -Property Count

- нет?

Первый пример возвращает значение 2 , которое я хочу, целое число.

Второй пример возвращает следующее:

Measure-Object : Property "Count" cannot be found in any object(s) input.
At line:1 char:23
+ GPS AcroRd32 | Measure <<<<  -Property Count
    + CategoryInfo          : InvalidArgument: (:) [Measure-Object], PSArgumentException
    + FullyQualifiedErrorId : GenericMeasurePropertyNotFound,Microsoft.PowerShell.Commands.MeasureObjectCommand



В этой записи сценариста я узнал, как использовать свойство «Счетчик» в первом примере кода.

Второй пример кода действительно сбивает с толку. В этой ссылке на Центр сценариев работает следующий оператор:

Import-Csv c:\scripts\test.txt | Measure-Object score -ave -max -min

Он все еще работает, даже если он переписан следующим образом:

Import-Csv c:\scripts\test.txt | Measure-Object -ave -max -min -property score

У меня не так много проблем с принятием этого, пока я не рассмотрю Справочная страница «Измерение объекта» .В определении параметра для -Property указано:

По умолчанию используется свойство Count (Length) объекта.

Если Count является значением по умолчанию, тогда не должен ли работать явный проход Count ?

GPS AcroRd32 | Measure -Property Count # Fails

Следующее предоставляет мне необходимую информацию, за исключением того, что она не предоставляет me с целым числом для выполнения операций, как вы увидите:

PS C:\Users\Me> $a = GPS AcroRd32 | Measure
PS C:\Users\Me> $a

Count    : 2
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

PS C:\Users\Me> $a -is [int]
False



Итак, почему точечная нотация ( $ a.count ) работает, а не явно записанный оператор ( GPS | Measure -Property Count )?

Если я должен использовать точечную нотацию, то я это сделаю, но я хотел бы воспользоваться этой возможностью, чтобы узнать больше о , как и * почему PowerShell работает именно так, а не просто поверхностно разбирается в синтаксисе PowerShell. Другими словами, я хочу избежать превращения в программиста культа груза / Code Monkey .

6
задан Community 12 April 2017 в 07:31
поделиться