将$ myVar设置为带通配符的变量

时间:2018-01-24 12:05:16

标签: powershell azure

我有以下脚本,我从这里得到了帮助,一个简单的问题,我如何将$MyVar设置为变量,并且可以选择通配符,以便选择部分名称。

Select-AzureRmSubscription -SubscriptionName "MySubscription"
Get-AzureRmResourceGroup | Where-Object {$_.ResourceGroupName -like '$MyVar'} | ForEach-Object {
    $VMs = Get-AzureRmVM -ResourceGroupName $_.ResourceGroupName
    ForEach ($vm in $vms) {
        $tags2 = $VM.tags
        $tags2 += @{ShutdownSchedule_AllowStart="True"; ShutdownSchedule_AllowStop="True" }

        Set-AzureRmResource -ResourceName $vm.Name -ResourceGroupName $vm.ResourceGroupName -ResourceType "Microsoft.Compute/virtualMachines" -Tag $tags2 -Force -Verbose
    }
}

不确定如何将其设置为变量。想的可能是{$_.ResourceGroupName -like $('$MyVar')}

或者我是否需要将其设置为参数,如在工作流程中,但不确定如何在工作流程之外执行此操作..

1 个答案:

答案 0 :(得分:2)

使用双引号,以便可以展开变量(请参阅about_quoting_rules),然后将*添加到要通配符的任一端(或两者):

{$_.ResourceGroupName -like "*$MyVar*"}