在Powershell的第三个变量中混合两个不同长度的变量

时间:2015-09-24 12:23:02

标签: powershell-v2.0 powershell-v3.0 powershell-v4.0

如何在第三个变量中混合两个不同长度的变量? Variable1有48个条目,variable2有16个条目。变量3应该在变量1的每第三行之后具有每四行中变量2的条目。 两个变量的长度可能不同,但总是可被3整除。

$i = 0 ; $var3 = $var1 | % { "$_ $($var2[$i])"; $i++ }

不起作用,因为它适用于相同长度的变量

实施例: $ Var1(48个条目)
名1
LOCATION1
国家1
名称2
LOCATION2
COUNTRY2


Name16
Location16
Country16

$ Var2(16个条目)
日期1
DATE2


Date16

$ Var3(应该有64个条目)
名1
LOCATION1
国家1
日期1


Name16
Location16
Country16
Date16

1 个答案:

答案 0 :(得分:0)

我假设$var1$var2是数组,并且"条目"是每个元素。

如果我必须使用您用来存储变量的方法,我就这样做:

$var1 = @('Name1','Location1','Country1','Name2','Location2','Country2','Name3','Location3',
'Country3','Name4','Location4','Country4','Name5','Location5','Country5','Name6','Location6',
'Country6','Name7','Location7','Country7','Name8','Location8','Country8','Name9','Location9',
'Country9','Name10','Location10','Country10','Name11','Location11','Country11','Name12',
'Location12','Country12','Name13','Location13','Country13','Name14','Location14','Country14',
'Name15','Location15','Country15','Name16','Location16','Country16');

$var2 = @('Date1','Date2','Date3','Date4','Date5','Date6','Date7','Date8','Date9','Date10',
'Date11','Date12','Date13','Date14','Date15','Date16');

$var3 = @();

for ($i = 0; $i -lt $var2.Count; $i++) {
    $var3 += $var1[$i * 3];
    $var3 += $var1[($i * 3) + 1];
    $var3 += $var1[($i * 3) + 2];
    $var3 += $var2[$i];    
}

实际上,我可能会将其存储为散列表数组,或者作为元组存储在PSObject/PSCustomObject中。天啊,我甚至可能更喜欢building a DataTable到平面阵列。