を持っている私は私の紺碧のWebアプリケーションのすべての名前を一覧表示するには、PowerShellで次のように入力します。は、Get-AzureRmWebAppを:フィルタリング結果が予期しない動作
Get-AzureRmWebApp | % { $_.Name }
それは出力:その後、
coolum-exercise-web-app
practice-web-app
AzureSandbox
しかしをこの出力を名前でフィルタリングしたいと思います。私はこれをタイプする:
Get-AzureRmWebApp | ? { $_.Name -like "coolum-exercise-web-app" } | % { $_.Name }
私は1つだけの出力を見たいと思う。代わりに私は参照してください
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
誰もが、この動作を説明できますか?括弧で囲んでコマンドを囲むと、フィルタ処理が行われるのはなぜですか? (括弧に注意してください)
(Get-AzureRmWebApp) | ? { $_.Name -like 'cool*' }
句をゲット-AzureRmWebAppをするために、デフォルトという名前のパラメータとして考慮され、全体のようになります。