2017-03-19 4 views
0

So habe ich den Namen eines Elements definiert als $ name, und eine Tabelle/Objekt der Elemente namens $ x. Das sieht aus wieÄndern Sie einen bestimmten Wert in einem PSObject

Name  id  PendingShutdown 
 
____  ___  ___________ 
 
example j-12453634 False

meine Variable $ name = "example"

Was ich tun möchte, ist $ name zu nehmen und ändern $ x so, dass es wie

sieht

Name  id  PendingShutdown 
 
____  ___  ___________ 
 
example j-12453634 True

Wie würde ich das machen?

Antwort

0

wenn PendingShutdown ist ein boolean

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

wenn PendingShutdown ein String

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

können Sie erklären, was die% tut auf '% {$ _. PendingShutdown = $ true}' –

+0

% ist ein Alis für eine Foreach auf jeder Elementeliste – Esperento57

0

Sie können den gewünschten Artikel über Where-Object (oder ? für kurz) auswählen, indem Sie eine Pipe verwenden und dann $name als Teil der Abfrage verwenden. Beachten Sie, dass das Ergebnis mehrere Elemente zurückgeben kann, wenn Sie in der Eigenschaft Name Duplikate haben (in diesem Fall können Sie | Select -First 1 nach der ersten Pipe verwenden).

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 
Verwandte Themen