Bạn có thể có được một tài sản theo tên bằng cách sử dụng Select-Object
lệnh và chỉ định tên tài sản (s) mà bạn đang quan tâm đến Lưu ý rằng đây không chỉ đơn giản là trở lại. giá trị thô cho thuộc tính đó; thay vào đó bạn nhận được một cái gì đó mà vẫn cư xử như một đối tượng.
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
Để sử dụng giá trị cho tài sản đó, bạn vẫn sẽ cần phải xác định được tài sản mà bạn đang theo đuổi, ngay cả khi chỉ có một tài sản:
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
Theo câu trả lời khác ở đây, nếu bạn muốn sử dụng một thuộc tính duy nhất trong một chuỗi, bạn cần đánh giá biểu thức (đặt các dấu ngoặc xung quanh nó) và tiền tố có ký hiệu đô la ($) để khai báo biểu thức động dưới dạng biến được chèn vào chuỗi:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
Khá chính xác, những người khác đã trả lời câu hỏi này bằng cách giới thiệu tham số -ExpandProperty
cho lệnh ghép ngắn Select-Object
. Điều này bỏ qua một số nhức đầu bằng cách trả về giá trị của thuộc tính được chỉ định, nhưng bạn sẽ muốn sử dụng các cách tiếp cận khác nhau trong các kịch bản khác nhau.
-ExpandProperty <String>
Chỉ định một tài sản để lựa chọn, và chỉ ra rằng một nỗ lực nên được thực hiện để mở rộng mà tài sản
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
powershellvariables
Nguồn
2016-01-15 16:00:09
nhớ mở rộng: 'select -expand" SomeProp "' nếu bạn muốn giá trị. 'select" SomeProp "' trả về một customobject với một thuộc tính "SomeProp", và sau đó anh ta khá nhiều trở lại ở bước 1. –
Có cách nào để sử dụng '$ obj." SomeProp "' trong 'write-host'? –
@TheMuffinMan, vâng, nó là một tính năng thường được áp dụng, như viết $ obj. "$ Somepropertyname" –