我正在尝试验证ResourceGroup是否存在所以我认为以下代码应返回true或false,但它不会输出任何内容。
SELECT title,
cid
FROM subscribes
WHERE cid IN (SELECT cid
FROM subscribes
GROUP BY cid
HAVING Count(cid) = 1);
为什么我没有得到任何输出?
答案 0 :(得分:17)
有一个Get-AzureRmResourceGroup cmdlet:
Get-AzureRmResourceGroup -Name $myResourceGroupName -ErrorVariable notPresent -ErrorAction SilentlyContinue
if ($notPresent)
{
# ResourceGroup doesn't exist
}
else
{
# ResourceGroup exist
}
答案 1 :(得分:2)
试试这个
$ResourceGroupName = Read-Host "Resource group name"
Find-AzureRmResourceGroup | where {$_.name -EQ $ResourceGroupName}
答案 2 :(得分:0)
我也在寻找相同的东西,但是我的场景中还有一个附加条件。
所以我想通了。要获取方案详细信息follow
$rg="myrg"
$Subscriptions = Get-AzSubscription
$Rglist=@()
foreach ($Subscription in $Subscriptions){
$Rglist +=(Get-AzResourceGroup).ResourceGroupName
}
$rgfinal=$rg
$i=1
while($rgfinal -in $Rglist){
$rgfinal=$rg +"0" + $i++
}
Write-Output $rgfinal
Set-AzContext -Subscription "Subscription Name"
$createrg= New-AzResourceGroup -Name $rgfinal -Location "location"
答案 3 :(得分:0)
我是PS新手,我正在寻找解决此问题的方法。
我没有直接在SO上搜索,而是尝试使用PS帮助自己进行调查(以获得关于PS的更多经验),然后我想出了一个可行的解决方案。 然后,我搜索了SO,以了解如何将其与专家的答案进行比较。 我想我的解决方案不太优雅,但更紧凑。我在这里举报,以便其他人发表意见:
if (!(Get-AzResourceGroup $rgname -ErrorAction SilentlyContinue))
{ "not found"}
else
{"found"}
我的逻辑的解释:我分析了Get-AzResourceGroup输出,发现它是具有找到的Resource groups元素的数组,或者如果没有找到组则为null。我选择了not(!)格式,该格式稍长一些,但可以跳过else条件。最常见的是,如果资源组不存在,我们只需要创建它,而如果资源组已经存在,则不执行任何操作。