PowerShell遍历CSV生成PSCustomObject时如何按顺序循环分配子网

要实现按顺序循环分配子网的需求,只需将原有代码中的随机取子网逻辑替换为取模索引取值即可,修改后的完整代码如下:
$csv = Import-Csv C:\ps\sample.csv $myobject = foreach ($line in $csv) { # 提前拆分当前行子网为数组,避免循环内重复操作 $subnetArr = $line.subnet -split ',' $subnetTotal = $subnetArr.Count if ($line.count -gt 0) { for($i = 0; $i -lt $line.count; $i++){ $count = $i + 1 [pscustomobject]@{ VMName = $line.vmname + $count # 取模运算实现子网顺序循环复用 Subnet = $subnetArr[$i % $subnetTotal] Sku = $line.sku os = $line.os } } } } $myobject
逻辑说明
假设你子网拆分后共有3个值:Subnet1、Subnet2、Subnet3
- 当
$i=0时,0%3=0,取索引0对应Subnet1 - 当
$i=1时,1%3=1,取索引1对应Subnet2 - 当
$i=2时,2%3=2,取索引2对应Subnet3 - 当
$i=3时,3%3=0,回到索引0对应Subnet1,以此类推,完全匹配你需要的输出效果。
内容的提问来源于stack exchange,提问作者Dilly B
相关产品推荐
相关产品推荐

