Powershell - 如何从 Object[] 中提取值

Powershell - how to extract a value from Object[]

我正在尝试弄清楚如何从 Powershell 中的 Object[] 中获取与 AzureWebJobsStorage 变量关联的值。到目前为止的逻辑如下:

 $azAppSettingsOutput = az functionapp config appsettings list --name somename --resource-group myResource --subscription subscription | ConvertFrom-Json
Write-Output $azAppSettingsOutput.GetType().name
Write-Output $azAppSettingsOutput | Get-Member
Write-Output $azAppSettingsOutput.name

这是我看到的输出:

PS C:\Users\me> .\test.ps1
Object[]

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
name        NoteProperty string name=APPINSIGHTS_INSTRUMENTATIONKEY
slotSetting NoteProperty bool slotSetting=False
value       NoteProperty string value=asdfasdf-asdf-asdf-asdf-asdf-asdf

APPINSIGHTS_INSTRUMENTATIONKEY
AzureWebJobsStorage
FUNCTIONS_EXTENSION_VERSION
FUNCTIONS_WORKER_RUNTIME
WEBSITE_RUN_FROM_PACKAGE
StorageTableName

PS C:\Users\me\>

我知道我可以这样循环:

foreach($setting in $azAppSettingsOutput) {
    Write-Output $setting.name
    $value = $setting.value

然后我可以添加一个 if 语句来检查名称是否匹配“AzureWebJobsStorage”,但我想知道是否有更简单的方法。

谢谢。

使用 Where-Object cmdlet 过滤您的数据:

$azAppSettingsOutput |Where-Object name -eq 'AzureWebJobsStorage'

这将过滤掉除 name 属性 等于 "AzureWebJobsStorage"

之外的所有对象