コマンドレットを使用し、目的のプロパティ名を指定して、名前でプロパティを取得できますSelect-Object
。これは、そのプロパティの生の値を返すだけではないことに注意してください。代わりに、オブジェクトのように動作するものを取得します。
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
そのプロパティの値を使用するためには、プロパティが1つしかない場合でも、後のプロパティを識別する必要があります。
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
ここでの他の回答と同様に、文字列内で単一のプロパティを使用する場合は、式を評価し(括弧で囲む)、ドル記号($)を前に付けて、挿入する変数として式を動的に宣言する必要があります文字列に:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
かなり正確に、他の人はコマンドレットの-ExpandProperty
パラメーターを推奨することでこの質問に回答していますSelect-Object
。これは、指定されたプロパティの値を返すことで頭痛の一部を回避しますが、異なるシナリオでは異なるアプローチを使用する必要があります。
-ExpandProperty <String>
選択するプロパティを指定し、そのプロパティを展開しようとする必要があることを示します
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
パワーシェル 変数
select -expand "SomeProp"
ないでください:値が必要な場合。select "SomeProp"
プロパティ「SomeProp」とcustomobjectを返し、その後、彼はかなり戻って、ステップ1で、だ