合并多个表格到CSV中的权力hell [重复] 。

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

你好,下面有两个表

Computer A
------------
20.03
20.02
20.01       
Computer B
------------
20.03
20.02
20.01
XXX
XXX

你好,我有一个问题是我想合并成一个CSV,所以我需要先实现下面的功能。

Computer A      Computer B
------------    ------------
20.03           20.03
20.02           20.02
20.01           20.01  
                XXX
                XXX

我该怎么做呢? 我有很多类似于那些表的东西需要合并,我试了一些很多次,就是不能做到这一点

powershell csv merge formattable
1个回答
0
投票

首先把两个数组都变成哈希特表--这样我们就可以快速查找一个值是否存在于一个或两个数组中。

$ComputerATable = @{}
$AObjects |ForEach-Object { $ComputerATable[$_.'Computer A'] = $_ }

$ComputerBTable = @{}
$AObjects |ForEach-Object { $ComputerATable[$_.'Computer B'] = $_ }

现在我们只需要循环浏览所有的 鲜明 计算机名称来建立我们的 "合并表"。

$merged = $ComputerATable.Keys,$ComputerBTable.Keys |Sort-Object |ForEach-Object {
  # Create a new object with the value (if present) from either table
  [pscustomobject]@{
    'Computer A' = if($ComputerATable.ContainsKey($_)){ $_ }
    'Computer B' = if($ComputerBTable.ContainsKey($_)){ $_ }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.