我想通过管道将对象传输到PowerShell if语句,但是它不起作用:
for($i = 1; $i -le 70; $i++) {
Get-AzureRmRedisCache -Name "isi$i" -ResourceGroupName "iaas101" | if ($_.ProvisioningState -eq 'Succeeded') {
Remove-AzureRmRedisCache $_ -Force
}}
“术语'if'不被识别为cmdlet,函数,脚本文件或可运行程序的名称”。那我该怎么办呢?
答案 0 :(得分:0)
您需要执行以下操作:
Get-AzureRmRedisCache -Name "isi$i" -ResourceGroupName "iaas101" | where { $_.ProvisioningState -eq 'Succeeded' } |
Remove-AzureRmRedisCache -Force
您使用Where-Object
进行过滤。
或者,您可以执行以下操作:
$cache = Get-AzureRmRedisCache -Name "isi$i" -ResourceGroupName "iaas101"
if ( $cache.ProvisioningState -eq 'Succeeded' ) { do stuff }
或这个(丑陋):
if ( (Get-AzureRmRedisCache -Name "isi$i" -ResourceGroupName "iaas101").ProvisioningState -eq 'Succeeded' ) { do stuff }