【发布时间】:2017-01-14 07:20:11
【问题描述】:
我在 Powershell 中键入以下内容,以列出我所有的 azure Web 应用程序的名称:
Get-AzureRmWebApp | % { $_.Name }
它输出:
coolum-exercise-web-app
practice-web-app
AzureSandbox
但是我想根据名称过滤此输出。我输入这个:
Get-AzureRmWebApp | ? { $_.Name -like "coolum-exercise-web-app" } | % { $_.Name }
我希望只看到一个输出。相反,我看到了
coolum-exercise-web-app
practice-web-app
AzureSandbox
为什么没有应用名称过滤器?
如果我直接在Get-AzureRmWebApp 上使用-Name 参数,它可以工作:
Get-AzureRmWebApp -Name "coolum-exercise-web-app" | % { %_.Name }
输出:
coolum-exercise-web-app
但是为什么where-object 无法按预期应用过滤器?
这里有一些非常令人费解的行为:如果你将
Get-AzureRmWebApp 括在括号中,过滤器会按照你的预期工作。
(Get-AzureRmWebApp) | ? { $_.Name -like "coolum-exercise-web-app" } | % { $_.Name }
输出:
coolum-exercise-web-app
谁能解释这种行为?为什么将命令括在括号中会使过滤起作用?
【问题讨论】:
标签: azure azure-web-app-service azure-powershell