使用PowerShell在同一输出中获取许多列表

时间:2017-06-22 06:13:42

标签: powershell

我必须在ISE的蓝色部分显示:

Column1   Column2   Column3   Column4
-------   -------   -------   -------
infra-98 infra-852 infra-44  infra-99
infra-62 infra-85  infra-8   infra-23
         infra-8   infra-852 infra-10
         infra-55            infra-70


Column1   Column2    Column3    Column4
-------   -------    -------    -------
infra-1   infra-85   infra-2     infra-99
infra-98  infra-55   infra-44    infra-23
infra-2              infra-1     infra-10
infra-62                         infra-70

csv文件(excel表)(注意:星号是匹配的单元格:

Column1      Column2    Column3     Column4
*infra-1*    infra-85  *infra-2*    infra-99
infra-98     infra-85   infra-44    infra-23
*infra-5*    infra-8   *infra-1*    infra-10
*infra-2*    infra-55   infra-8     infra-70
infra-62    *infra-5*   infra-852   *infra-5*
*infra-6*   *infra-6*   infra-853   *infra-6*

首先,有四个列表显示与Column1不匹配的单元格,然后在第二个列表中我们对Column2具有相同的功能。问题是我不知道该怎么做。人们告诉我这是可行但复杂的,所以有另一种选择来创建它吗?

当前代码允许删除与第一列不匹配的单元格:

$csv = Import-Csv .\test1.csv -Delimiter ';'

$ref = @($csv.Column1)
foreach ($row in $csv) {
  foreach ($col in 'Column2', 'Column3', 'Column4') {
    if ($ref -contains $row.$col) { $row.$col = '' }
  }
}


$csv | Select-Object Column1,Column2,Column3,Column4

1 个答案:

答案 0 :(得分:2)

构建4个独立的数组,每列一个,然后加入:

{{1}}

这是一个通用示例,因此您可能需要对其进行调整。