Sen Select-Object
cmdlet'ini kullanarak ve ilgilendiğiniz özellik adı (ler) belirterek adıyla bir özelliği alabilirsiniz bu basitçe geri dönüşü yok unutmayın. bu özellik için ham değer; bunun yerine hala bir nesne gibi davranan bir şey elde edersiniz.
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
diğer cevaplar gereğince:
o özellik için
değerini kullanmak için
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
, hala sadece bir özellik olsa bile, sen sonra hangi özelliği tanımlamak gerekecektir Burada, bir dize içinde tek bir özelliği kullanmak isterseniz, ifadeyi dinamik olarak dizeye eklenecek bir değişken olarak bildirmek için ifadeyi (parantezlerin etrafına) ve önekin bir dolar işareti ($) ile değerlendirmeniz gerekir:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
Doğru olarak, diğerleri, Select-Object
cmdlet'ini -ExpandProperty
parametresini önererek bu soruyu yanıtladı. Bu, belirtilen özelliklerin değerini döndürerek bazı baş ağrısını atlar, ancak farklı senaryolarda farklı yaklaşımlar kullanmak isteyeceksiniz.-ExpandProperty <String>
seçmek için bir özellik belirtir ve bir girişim o, tesisi
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
powershellvariables
genişletmek için yapılması gerektiğini belirtir
Genişletmeyi hatırla: 'değerini seç - 'SomeProp'' değerini seç. ' "SomeProp" seçeneğini' 'yazma-host' içinde' bir özellik "SomeProp" ile customobject döndürür, sonra da '$ obj kullanmak için bir yolu var mı. "SomeProp" hemen hemen geri adım 1. –
yazılı? –
@TheMuffinMan, evet, genel olarak yazılabilir bir özelliktir. $ $ "$ Somepropertyname" –