使用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使用PowerShell在同一输出中获取多个列表,powershell,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 Colu
构建4个单独的数组,每列一个,然后联接:
$csv = Import-Csv .\1.csv -Delimiter ';'
$ref = [ordered]@{}
$columns = foreach ($i in 0..3) { ,[Collections.ArrayList]@() }
foreach ($row in $csv) {
$value = $row.Column1
$ref[$value] = $true
$columns[0].add($value) >$null
}
foreach ($row in $csv) {
$i = 1
foreach ($col in 'Column2', 'Column3', 'Column4') {
$value = $row.$col
if (!$ref[$value]) {
$columns[$i].add($value) >$null
}
$i++
}
}
$maxLine = ($columns | select -expand Count | measure -Maximum).Maximum - 1
$csv = foreach ($i in 0..$maxLine) {
[PSCustomObject]@{
Column1 = $columns[0][$i]
Column2 = $columns[1][$i]
Column3 = $columns[2][$i]
Column4 = $columns[3][$i]
}
}
这是一个通用示例,因此您可能需要对其进行调整。我只想将输出放在上面,但我当前的代码不是为此编写的,我不知道该怎么做。这两个表必须在同一个输出中。是的,因为我不知道该怎么做才能显示预期的输出。我只是想尽一切办法得到这个结果。我试图在问题中解释它。为了理解charlo希望在每个单独的列中向上移动条目,以便没有更多的空白,我在a中花了很多评论。Sry,即使我阅读了教程,我也无法正确解释我的问题,但口头解释更简单。我有点紧张,因为我必须在两周内完成它。@wOxxOm是的,
*
在结果中被删除了一些单元格无缘无故地消失了。我知道,但这只是个问题。我的目标是由两部分组成。首先移除mtching单元格,然后在同一输出中显示多个表/列表或任何内容,这就是我所要求的。我怎么知道?我不知道错误是什么,你的实际数据是什么,等等。没关系,我发现值有问题,一切正常,谢谢
$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
$csv = Import-Csv .\1.csv -Delimiter ';'
$ref = [ordered]@{}
$columns = foreach ($i in 0..3) { ,[Collections.ArrayList]@() }
foreach ($row in $csv) {
$value = $row.Column1
$ref[$value] = $true
$columns[0].add($value) >$null
}
foreach ($row in $csv) {
$i = 1
foreach ($col in 'Column2', 'Column3', 'Column4') {
$value = $row.$col
if (!$ref[$value]) {
$columns[$i].add($value) >$null
}
$i++
}
}
$maxLine = ($columns | select -expand Count | measure -Maximum).Maximum - 1
$csv = foreach ($i in 0..$maxLine) {
[PSCustomObject]@{
Column1 = $columns[0][$i]
Column2 = $columns[1][$i]
Column3 = $columns[2][$i]
Column4 = $columns[3][$i]
}
}