两个变量具有值,必须使用 powershell 进行比较并添加到另一列中

问题描述 投票:0回答:1

变量 $a 输出如下,列名称:VmName、RG、CurrentSKU、OS

虚拟机名称、RG、当前 SKU、操作系统

VM1、RG1、DS2_v2、Windows

VM2、RG2、DS3_V3、Linux

VM3、RG3、F4S、Windows

VM4、RG4、DS2_v2、Linux

变量 $b 输出如下,列名称:OldSKU、newSKU

旧SKU、新SKU

DS2_v2、D2as_v4

F2s、F2sv2

DS3_V3、D2as_v4

使用 Powershell 我想要如下所示的输出,

虚拟机名称、RG、当前 SKU、新 SKU、操作系统,

VM1、RG1、DS2_v2、D2as_v4、Windows

VM2、RG2、DS3_V3、D2as_v4、Linux

VM3、RG3、F4S、F2sv2、Windows

VM4、RG4、DS2_v2、D2as_v4、Linux

请快速获得帮助。

azure powershell azure-powershell
1个回答
0
投票

使用

Group-Object
创建包含 SKU 映射的哈希表:

$skuTable = $b |Group-Object OldSKU -AsHashTable

然后使用

Select-Object
附加具有映射值的新
newSKU
属性:

$c = $a |Select-Object VmName,RG,CurrentSKU,@{Name='NewSKU';E={$skuTable[$_.CurrentSKU].newSKU}},OS

$c
现在包含一个新的对象列表,如您所描述的那样:

PS ~> $c |Format-Table

VmName RG  CurrentSKU NewSKU  OS
------ --  ---------- ------  --
VM1    RG1 DS2_v2     D2as_v4 Windows
VM2    RG2 DS3_V3     D2as_v4 Linux
VM3    RG3 F4S                Windows
VM4    RG4 DS2_v2     D2as_v4 Linux
© www.soinside.com 2019 - 2024. All rights reserved.