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"
之外的所有对象
我正在尝试弄清楚如何从 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"