【发布时间】:2016-10-24 00:12:53
【问题描述】:
我正在尝试搜索名称包含“XYZ”的 ResourceGroup,并根据其存在情况使用 Try{} Catch{} 进行处理。我确定它应该很简单,但我无法理解为什么它不喜欢这样:
Get-AzureRmResourceGroup -Name "[MK3]" #No error as it exists
Get-AzureRmResourceGroup -Name "[BLAH]" #Errors as it doesn't exist
返回的错误是:
Get-AzureRMResourceGroup : 'resourceGroupName' does not match expected pattern '^[-\w\._\(\)]+$'.
At line:1 char:1
+ Get-AzureRMResourceGroup -Name [MK3]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzureRmResourceGroup], ValidationException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceGroupCmdlet
这行得通:
Get-AzureRmResourceGroup | Where-Object{$_.ResourceGroupName -like "*MK3*"}
但是这种方法需要更多的“if”语句,我更愿意避免。
对我来说,错误提示 cmdlet 处理通配符,但我似乎无法正确使用语法。
任何建议,不胜感激。
【问题讨论】: