将数组值替换为数组值

时间:2018-06-14 11:32:15

标签: powershell

我想将数据模板$Arraytest替换为XML文件Arraytest2中的实际数据。

所以我将$Arraytest.Values替换为来自$Arraytest2.Values的{​​{1}}并保存以供进一步处理。

$Arraytest = @{
    TLC     = 'TLC'
    Crew3LC = 'Crew3LC'
    MyText  = 'MyText'
}

$Arraytest2 = @{
    TLC     = 'FWE'
    Crew3LC = 'KMU'
    MyText  = 'Hello'
}

foreach ($Value in $Arraytest) {
    $Value.Values
}

2 个答案:

答案 0 :(得分:1)

您的对象是哈希表,而不是数组:

$Arraytest | Get-Member

TypeName: System.Collections.Hashtable     

因此您可以使用内置的哈希表键进行更新:

$Arraytest = @{
    TLC      = 'TLC'
    Crew3LC  = 'Crew3LC'
    MyText   = 'MyText'
}

$Arraytest2 = @{ 
    TLC      = 'FWE'
    Crew3LC  = 'KMU'
    MyText   = 'Hello'
}

foreach($key in $($Arraytest.keys)){
    $ArrayTest[$key] = $ArrayTest2[$key] 
}

$ArrayTest

Name                           Value                                                                                                                                                                                 
----                           -----                                                                                                                                                                                 
Crew3LC                        KMU                                                                                                                                                                                   
TLC                            FWE                                                                                                                                                                                   
MyText                         Hello   

答案 1 :(得分:0)

您可以使用Clone()作为浅色副本:

{{1}}

对于这种情况,浅层副本可以正常使用,但请参阅Remarks以获取有关此内容的更多信息。