2016-03-02 57 views
0

我有一个变量叫楼宇自控字符串:$backendSubnet基于可变

这个变量目前包含4个,当我做$backendSubnet.Count返回“”

条目这个数字会改变每个脚本运行的时间。我需要做的,它会自动跳出(基于条目数),在这种情况下有4什么 - 在另一个cmdlet来使用,见.....

-Subnet $backendSubnet1,$backendSubnet2,$backendSubnet3,$backendSubnet2 

我需要自动化打破了这一点像上面这样排列。

我曾尝试以下,位我觉得我是在错误的轨道上:

$max = $backendSubnet.Count -1;0..$max | % {$backendSubnetArray += $backendSubnet[$_]} 
+0

看来该cmdlet接受'-Subnet'参数的数组。我会认为'-Subnet $ backendSubnet'可以工作。 – Cobster

+0

不,这里有太多的条目(总共4个子网),需要像我上面的例子一样用逗号分隔它们。 –

+0

@MarcKean不,你不知道。以逗号分隔的变量列表也是一个数组。这与传递原始数组没有区别。如果'$ backendSubnet'包含您不想传递的子网:使用'Where-Object'过滤器将它们从数组中移除。 –

回答

0

我建议初始化一个新的阵列预定义的大小,然后从$backendSubnet N个元素复制到新数组。然后冲洗并重复。

for ($i = 0; $i -lt $backendSubnet.Count; $i += $numToCopy) 
{ 
    $numToCopy = [Math]::Min($backendSubnet.Count - $i, $max) 
    $subset = new-object object[] $numToCopy 
    [Array]::Copy($backendSubnet, $i, $subset, 0, $numToCopy) 

    SomeCmdlet -Subnet $subset 
} 
+0

来建立一个在上面运行时,$ numToCopy是空白的,$ backendSubnet.Count等于4 –