パイプを使用して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
ある場合は、%は '%に何を説明することができます{$ _。PendingShutdown = $真}' –
%はすべての要素リストに対してforeachを行うためのalisです – Esperento57