Я пытаюсь использовать диапазон чисел в операторе Where при повторении цикла foreach. Переменная $i используется для разделения частей цикла в зависимости от того, сколько итераций прошел цикл.
$a = 11..20
$i = 0
$PoolSW = ""
$PoolSW2 = ""
$PoolSW3 = ""
foreach ($Pool in $PoolTable) {
$i++
[Array]$PoolSW += "Statistic.Pool$($Pool.Name -replace "-","_"): $(Get-PoolHealth -BooleanState $Pool.Enabled)" | where {$i -le 10}
[Array]$PoolSW2 += "Statistic.Pool$($Pool.Name -replace "-","_"): $(Get-PoolHealth -BooleanState $Pool.Enabled)" | where {$i -eq $a}
[Array]$PoolSW3 += "Statistic.Pool$($Pool.Name -replace "-","_"): $(Get-PoolHealth -BooleanState $Pool.Enabled)" | where {$i -gt 20}
}
Переменные $PoolSW и $PoolSW3 работают отлично, к сожалению, я не знаю, как заставить $PoolSW2 работать правильно. Я пробовал where {$i -eq 11..20} и пробовал запятую, разделяющую числа, я пробовал -contains также.





Вы можете использовать диапазон, например -
... | where {$i -ge 11 -and $i -le 20}
ИЛИ
Используйте оператор -In -
... | where {$i -in 11..20}
Попробуйте
where {$i -in 11..20}.