Я не совсем уверен, что вы ожидаете от $($fi+($iter))
или $script:fi+$iter
, но я почти уверен, что они не будут делать то, что вы ожидаете.
Чтобы создать функциюмассив массивов в цикле, а затем вернуть его, вы бы сделали что-то вроде этого:
function fiswitchinfo {
...
$arr = @()
for ($i=1; $i -lt 900 ; $i++) {
...
$arr += ,$compip
}
return ,$arr
}
$fi1 = fiswitchinfo ...
$fi2 = fiswitchinfo ...
...
Ведущая запятая в операторах $arr += ,$compip
и return ,$arr
- это оператор построения унарного массива, который запрещаетPowerShell от разворачивания массивов.$arr += ,$compip
добавляет $compip
к $arr
как вложенный массив (таким образом делая $arr
зубчатый массив) вместо добавления элементов $compip
к $arr
.return ,$arr
гарантирует, что $arr
возвращается вызывающей стороне как есть (таким образом, сохраняя массив, даже если он пуст).