当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中从对象中删除属性 [2 种方法]

作者:精品下载站 日期:2024-12-14 05:25:55 浏览:12 分类:玩电脑

在 PowerShell 中从对象中删除属性 [2 种方法]


[玩转系统] 在 PowerShell 中从对象中删除属性 [2 种方法]

使用 PSObject.Properties.Remove() 方法

要从 PowerShell 中的对象中删除属性,

  • 使用New-Object cmdlet 创建对象。
  • 使用 PSObject.Properties.Remove() 方法通过提供属性名称作为 string 参数来从对象中删除特定属性。

使用 PSObject.Properties.Remove() 方法:

$person_obj = New-Object -Typename PSCustomObject -Property @{
    Name = 'Bob'
    Age = '25'
    Citizenship = 'U.S'
}
Write-Host "Before Removal: $person_obj"
$person_obj.PSObject.Properties.Remove('Age')
Write-Host "After Removal: $person_obj"

输出 :

Before Removal: @{Citizenship=U.S; Name=Bob; Age=25}
After Removal: @{Citizenship=U.S; Name=Bob}

在上面的代码中,我们创建了一个名为$person_obj的对象,其属性为NameAgeCitizenship 。接下来,我们使用 Remove() 方法删除 Age 属性。您可以观察到 $person_obj 只剩下两个属性:CitizenshipName。在此命令中,我们使用 PSObject.Properties.Remove() 方法从对象 $person_obj 中删除属性 Age

注意PSObject.Properties.Remove() 方法还将属性名称作为 string 参数,因此您需要传递属性名称您想要删除的属性。

使用 -ExcludeProperty 参数

要从 PowerShell 中的对象中删除指定的属性,

  • 使用 New-Object cmdlet 创建对象
  • 使用带有 -ExcludeProperty 参数的 Select-Object cmdlet 从对象中删除指定的属性。

使用 -ExcludeProperty 参数:

$car_obj = New-Object -Typename PSCustomObject -Property @{
    Name = 'BMW'
    Color = 'White'
    Type = 'Manual'
}
Write-Host "Before Removal: $car_obj"
$car_obj = $car_obj | Select-Object * -ExcludeProperty Type
Write-Host "After Removal: $car_obj"

输出 :

Before Removal: @{Color=White; Name=BMW; Type=Manual}
After Removal: @{Color=White; Name=BMW}

在上面的代码中,New-Object cmdlet 用于创建一个名为 car_objPSCustomObject,它具有三个属性 ColorName > 和类型。这里,-Property参数用于以键值对格式设置汽车对象的属性。

在此示例中,Select-Object cmdlet 用于选择 car_obj 对象的指定属性。此处,-ExcludeProperty 参数用于从 $car_obj 中删除属性 Type

在 PowerShell 中,-ExcludeProperty 参数将属性名称作为 string 参数,因此您必须传递要删除的属性的名称。

注意:在此代码片段中,* 代表all。这意味着上面的命令用于选择 car_obj 对象的所有属性,不包括我们想要删除的 Type 属性。

您还可以通过将要删除的所有属性的名称指定为 -ExcludeProperty 参数的值来删除多个属性。如下图示例:

使用 -ExcludeProperty 参数:

$car_obj = New-Object -Typename PSCustomObject -Property @{
    Name = 'BMW'
    Color = 'White'
    Type = 'Manual'
}
$car_obj | Select-Object * -ExcludeProperty Name, Color 

输出 :

Type
----
Manual

在此示例中,使用 -ExcludeProperty 参数从对象 $car_obj 中删除了属性 NameColor

让我们看一下使用 -ExcludeProperty 参数从对象中删除多个属性的另一个示例。它将一个或多个属性名称作为参数并将它们从对象中删除。

使用 -ExcludeProperty 参数:

$my_obj =  New-Object -Typename PSCustomObject -Property  @{
    'property1' = 'value1'
    'property2' = 'value2'
    'property3' = 'value3'
}
$my_obj | Select-Object * -ExcludeProperty property1, property3

输出 :

property2
----------
value2

在此示例中,我们创建了一个对象 $my_obj,其中包含三个属性 property1property2property3。之后,使用-ExcludeProperty参数删除property1property3。现在该对象只剩下具有值 value2property2

注意Select-Object-ExcludeProperty 适合从对象集合中删除属性。对于从单个对象中删除属性,PSObject.Properties.Remove() 方法可能更有效。

这就是如何在 PowerShell 中从对象中删除属性,

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯