PowerShell 移除对象中的空属性(适用于所有版本)


在前一篇文章中,提到了怎样从一个对象中移除内容为空的属性,并且将属性按照字母顺序排序,但是脚本需要PowerShell 3.0的支持。
在这篇文章中我们会对代码稍作改动,让它工作在PowerShell所有的版本上。同样是通过WMI对象,获取BIOS对象的信息。然后移除空属性,最后对属性进行排序。

$biosNew = $bios |
Get-Member -MemberType *Property |
Select-Object -ExpandProperty Name |
Sort-Object |
ForEach-Object -Begin { $obj=New-Object PSObject } {
  if ($bios.$_ -eq $null)
  {
    Write-Warning "Removing empty property $_"
  }
  else
  {
    $obj | Add-Member -memberType NoteProperty -Name $_ -Value $bios.$_
  }

}{$obj}

$biosNew

运行时,可能会看到黄色的警告信息:

WARNING: Removing empty property BuildNumber
WARNING: Removing empty property CodeSet
WARNING: Removing empty property IdentificationCode
WARNING: Removing empty property InstallDate
WARNING: Removing empty property LanguageEdition
WARNING: Removing empty property OtherTargetOS

正好这些空属性被移除。

原文链接:Removing Empty Object Properties (All Versions)

本文链接: https://www.pstips.net/powershell-removing-empty-object-properties-to-all-versions.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注