Tại saoLàm thế nào để sử dụng tham số "-Property" cho lệnh ghép ngắn "Measure-Object" của PowerShell?
$a = GPS AcroRd32 | Measure
$a.Count
làm việc, khi
GPS AcroRd32 | Measure -Property Count
không?
Ví dụ đầu tiên trả về giá trị 2
, đó là những gì tôi muốn, một số nguyên.
Ví dụ thứ hai trả về này:
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
This Scripting Guy entry là nơi tôi học được cách sử dụng "Đếm" tài sản trong mẫu mã đầu tiên.
Mẫu mã thứ hai thực sự khó hiểu. Trong this Script Center reference, báo cáo kết quả sau hoạt động:
Import-Csv c:\scripts\test.txt | Measure-Object score -ave -max -min
Nó vẫn hoạt động ngay cả khi nó lại viết như vậy:
Import-Csv c:\scripts\test.txt | Measure-Object -ave -max -min -property score
tôi không có quá nhiều vấn đề với việc chấp nhận này cho đến khi tôi xem xét các Measure-Object help page . Định nghĩa thông số cho -Property <string[]>
tiểu bang:
Giá trị mặc định là thuộc tính Đếm (Độ dài) của đối tượng.
Nếu Count
là mặc định, thì không được phép chuyển rõ ràng Count
hoạt động?
GPS AcroRd32 | Measure -Property Count # Fails
Sau đây cung cấp cho tôi những thông tin tôi cần, ngoại trừ nó không cung cấp cho tôi với một số nguyên để thực hiện các hoạt động trên, như bạn sẽ thấy:
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
Vì vậy, tại sao ký hiệu chấm ($a.count
) hoạt động, nhưng không phải là một tuyên bố rõ ràng bằng văn bản (GPS | Measure -Property Count
)?
Nếu tôi được phép sử dụng Dot Notation, sau đó tôi sẽ, nhưng tôi muốn nhân cơ hội này để tìm hiểu thêm về cách và * tại sao PowerShell hoạt động theo cách này, thay vì chỉ xây dựng một chiếu lệ sự hiểu biết về cú pháp của PowerShell. Nói cách khác, tôi muốn tránh biến thành Cargo Cult Programmer/Code Monkey.
'Get-Thành viên -InputObject (gps Acrord32) '- điều này đã giúp tôi hiểu nơi' Count' tài sản đến từ. Bây giờ tôi có thể thấy lý do tại sao "tuyên bố đầy đủ" của tôi không hoạt động, vì đó là cú pháp sai. Cảm ơn đã chỉ cho tôi cách sử dụng '(GPS AcroRd32) .Count'! – Stisfa