2017-03-19 8 views
0

したがって、$ nameという名前のアイテムの名前と$ xというアイテムのテーブル/オブジェクトがあります。私が何をしたいかPSObjectの特定の値を変更する

はそれが

のように見えるように$名、および変更の$ xを取るである私の変数$名= "例"

Name  id  PendingShutdown 
 
____  ___  ___________ 
 
example j-12453634 False

のようにそれは見えます

Name  id  PendingShutdown 
 
____  ___  ___________ 
 
example j-12453634 True

どうすればこのことをやりますか?

答えて

0

PendingShutdownはブール

$x | where Name -eq "example" | %{$_.PendingShutdown=$true} 

ある場合PendingShutdownは、文字列

$x | where Name -eq "example" | %{$_.PendingShutdown="True"} 
+0

ある場合は、%は '%に何を説明することができます{$ _。PendingShutdown = $真}' –

+0

%はすべての要素リストに対してforeachを行うためのalisです – Esperento57

0

パイプを使用してWhere-Object(または?)でリクエストしたアイテムを選択してから、$nameをクエリの一部として使用できます。 Nameプロパティに重複がある場合は、結果が複数の項目を返す可能性があることに注意してください(この場合、最初のパイプの後に| Select -First 1を使用できます)。

PS > $name = "example" 

# setup of list items 
PS > $x = @{} 
PS > $x.Name = "example" 
PS > $x.id = "j-12453634" 
PS > $x.PendingShutdown = $false; 

PS > $x2 = @{} 
PS > $x2.Name = "other-name" 
PS > $x2.id = 42 
PS > $x2.PendingShutdown = $false 

PS > $items = @() 
PS > $items += $x 
PS > $items += $x2 

# displaying list before modification 
PS > $items 

Name       Value 
----       ----- 
PendingShutdown    False 
Name       example 
id        j-12453634 
PendingShutdown    False 
Name       other-name 
id        42 

# selecting item from list via Name property with value from variable 
PS > $items |? Name -eq $name 

Name       Value 
----       ----- 
PendingShutdown    False 
Name       example 
id        j-12453634 

# updating item via selector from variable 
PS > ($items |? Name -eq $name).PendingShutdown = $true 

# displaying list after modification 
PS > $items 

Name       Value 
----       ----- 
PendingShutdown    True 
Name       example 
id        j-12453634 
PendingShutdown    False 
Name       other-name 
id        42 
関連する問題