Anda bisa mendapatkan properti dengan nama menggunakan Select-Object
cmdlet dan menentukan nama properti yang Anda minati. Perhatikan bahwa ini tidak hanya mengembalikan nilai mentah untuk properti itu; alih-alih Anda mendapatkan sesuatu yang masih berperilaku seperti objek.
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
Untuk menggunakan nilai properti itu, Anda masih perlu mengidentifikasi properti yang Anda cari, bahkan jika hanya ada satu properti:
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
Seperti jawaban lain di sini, jika Anda ingin menggunakan satu properti dalam sebuah string, Anda perlu mengevaluasi ekspresi (letakkan tanda kurung di sekitarnya) dan awali dengan tanda dolar ($) untuk menyatakan ekspresi secara dinamis sebagai variabel yang akan dimasukkan ke dalam string:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
Cukup benar, orang lain telah menjawab pertanyaan ini dengan merekomendasikan -ExpandProperty
parameter untuk Select-Object
cmdlet. Ini memintas beberapa sakit kepala dengan mengembalikan nilai properti yang ditentukan, tetapi Anda akan ingin menggunakan pendekatan yang berbeda dalam skenario yang berbeda.
-ExpandProperty <String>
Menentukan properti yang akan dipilih, dan menunjukkan bahwa upaya harus dilakukan untuk memperluas properti itu
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
PowerShell variabel
select -expand "SomeProp"
jika Anda menginginkan nilainya.select "SomeProp"
mengembalikan objek kustom dengan properti "SomeProp", dan kemudian dia cukup banyak kembali pada langkah 1.