更改 PSObject 中的特定值
Change a specific value in a PSObject
所以我有一个项目名称定义为 $name,还有一个 table/object 项目名称为 $x。看起来像
Name id PendingShutdown
____ ___ ___________
example j-12453634 False
我的变量 $name = "example"
我想做的是取 $name,然后更改 $x,使其看起来像
Name id PendingShutdown
____ ___ ___________
example j-12453634 True
我该怎么做?
您可以使用管道 select 通过 Where-Object
(或简称 ?
)请求的项目,然后使用 $name
作为查询的一部分。请记住,如果 Name
属性 中有重复项,结果可能 return 多个项目(在这种情况下,您可以在第一个管道后使用 | 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 是布尔值
$x | where Name -eq "example" | %{$_.PendingShutdown=$true}
如果 PendingShutdown 是一个字符串
$x | where Name -eq "example" | %{$_.PendingShutdown="True"}
所以我有一个项目名称定义为 $name,还有一个 table/object 项目名称为 $x。看起来像
Name id PendingShutdown
____ ___ ___________
example j-12453634 False
我的变量 $name = "example"
我想做的是取 $name,然后更改 $x,使其看起来像
Name id PendingShutdown
____ ___ ___________
example j-12453634 True
我该怎么做?
您可以使用管道 select 通过 Where-Object
(或简称 ?
)请求的项目,然后使用 $name
作为查询的一部分。请记住,如果 Name
属性 中有重复项,结果可能 return 多个项目(在这种情况下,您可以在第一个管道后使用 | 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 是布尔值
$x | where Name -eq "example" | %{$_.PendingShutdown=$true}
如果 PendingShutdown 是一个字符串
$x | where Name -eq "example" | %{$_.PendingShutdown="True"}