Cmdlet'i kullanarak ve ilgilendiğiniz özellik ad (lar) ını belirterek bir özelliği ada göre edinebilirsiniz Select-Object
. Bunun yalnızca o özelliğin ham değerini döndürmediğini unutmayın; bunun yerine hala bir nesne gibi davranan bir şey elde edersiniz.
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
Söz konusu mülkün değerini kullanmak için , yalnızca bir mülk olsa bile, hangi mülkün peşinde olduğunuzu belirlemeniz gerekir:
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
Buradaki diğer yanıtlarda olduğu gibi, bir dize içinde tek bir özellik kullanmak istiyorsanız, ifadeyi dinamik olarak eklenecek bir değişken olarak bildirmek için ifadeyi değerlendirmeniz (etrafına parantez koyun) ve dolar işareti ($) ile ön ek yapmanız gerekir. dizeye:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
Oldukça doğru bir şekilde, diğerleri bu soruyu cmdlet için -ExpandProperty
parametre Select-Object
önererek yanıtladılar . Bu, belirtilen özelliğin değerini döndürerek baş ağrısının bir kısmını atlar, ancak farklı senaryolarda farklı yaklaşımlar kullanmak isteyeceksiniz.
-ExpandProperty <String>
Seçilecek bir özelliği belirtir ve bu özelliği genişletmek için bir girişimde bulunulması gerektiğini belirtir
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
güç kalkanı değişkenler
select -expand "SomeProp"
eğer değeri istiyorsanız.select "SomeProp"
"SomeProp" özelliğine sahip bir özel nesne döndürür ve hemen hemen 1. adımda geri döner.