我有以下脚本,我从这里得到了帮助,一个简单的问题,我如何将$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')}
或者我是否需要将其设置为参数,如在工作流程中,但不确定如何在工作流程之外执行此操作..
答案 0 :(得分:2)
使用双引号,以便可以展开变量(请参阅about_quoting_rules),然后将*
添加到要通配符的任一端(或两者):
{$_.ResourceGroupName -like "*$MyVar*"}