arrays - Powershell-如何用数组列表值替换查询结果值

标签 arrays powershell

我有一个PowerShell脚本,在其中收集大量数据,然后输出到HTML报告。
以下各节之一:

$VPGSummaryInfo = Get-ZertoVPG | Select VPGName, Priority, Status, ProgressPercentage, ActualRPO | Sort-Object -Property VPGName
    
    $htmlbody += $VPGSummaryInfo | ConvertTo-Html -Fragment
很简单。
我正在尝试做且无法弄清的是如何更改优先级以替换结果。例如,当“优先级”为1时,将其更改为“高”。
我试图做这样的事情,但这给了我一个错误(不是可以验证的地方,但是我相信这是一个Null表达式错误):
       
       $VPGInfo = @()
       
       $VPGStatus = @{
       1 = "High"; 2 = "Medium"; 3 = "Low"
}
       
       $VPG = Get-ZertoVPG | Select VPGName, Priority, Status, ProgressPercentage, ActualRPO
       
       
       $VPGStat = $VPGStatus[[int]$VPG.Priority]
       
       $VPGObj = New-Object PSObject
       
       $VPGObj | Add-Member NoteProperty -Name "VPG Name" -Value $VPG.VPGName
       $VPGObj | Add-Member NoteProperty -Name "Priority" -Value $VPGStat
       $VPGObj | Add-Member NoteProperty -Name "Status" -Value $VPG.Status
       $VPGObj | Add-Member NoteProperty -Name "Replication Progress Percentage (%)" -Value $VPG.ProgressPercentage
       $VPGObj | Add-Member NoteProperty -Name "Actual RPO (Sec)" -Value $VPG.ActualRPO

       
       $VPGInfo += $VPGObj


       $htmlbody += $VPGInfo | ConvertTo-Html -Fragment       
我完全愿意采用任何方法来实现这一目标。在很多情况下,我都需要进行类似的替换。例如,即使在上面的代码中,我也将尝试将Status替换为更具可读性的内容。
感谢您的任何建议。

最佳答案

使用calculated property:

Get-ZertoVPG | Select VPGName, 
  @{Name='Priority'; Expression={ @{ 1="High"; 2="Medium"; 3="Low" }[$_.Priority]}},
  Status, ProgressPercentage, ActualRPO
注意:这假定原始.Priority值是[int]类型的(System.Int32;使用Get-ZertoVPG | Get-Member Priority进行验证)。

关于arrays - Powershell-如何用数组列表值替换查询结果值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63266839/

相关文章:

php - 如何删除数组内部的嵌套数组

java - 如何根据值的动态条目拆分字符串数组?

powershell - 在 PowerShell 中,如何发送邮件并在电子邮件正文中枚举发现的错误

javascript - 如何将变量作为键传递到 javascript unshift/push 中?

arrays - 批量嵌套变量

c# - PowerShell .NET 对象缺少方法

powershell - 为什么哈希表键上有尾随空格?

docker - (如何)我可以在 docker 容器中运行 Windows Defender 吗?获取错误

windows - 自动生成对 powershell 命令的响应?

javascript - 如何删除数组中的所有空数组