あなたは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
Select-Object
コマンドレットの-ExpandProperty
パラメータを推奨することで、この問題に完全に対応している人もいます。これは、指定されたプロパティの値を返すことによって頭痛の一部を回避しますが、さまざまなシナリオで異なるアプローチを使用することになります。
-ExpandProperty <String>
選択するプロパティを指定し、試みは
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
powershellvariables
そのプロパティを展開するためになされるべきであることを示し、
覚えておいてください: 'select -expand" SomeProp "' '' SomeProp''を選択すると、プロパティー "SomeProp"を持つカスタムオブジェクトが返され、その後、彼はステップ1に戻ります。 –
'$ obj。 'を使う方法は' write-host'にありますか? –
@TheMuffinMan、はい、書き込みホスト$ objのように一般的に適用可能な機能です。 "$ somepropertyname" –