Почему
$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 .