比较 PowerShell 数据表中的两个列名称

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

我需要将两个文本文件与两个数据表 dt1 和 dt2 中的这些列进行比较:

文件1:A1,A2,A3,A4,A5,A6,A7,A8,A9,10

文件2:A1,A2,A4,A6,A8,A9,A10,A11,A12,A13,A14

我需要将 File1 中的列的行值复制到 File2,如果 File1 中不存在该列,则插入一个管道

我试过这个:

foreach($col in $dt2.Columns)
        {                          
            if($dt1.Columns.Contains($col.ColumnName))
            {
            [void]$line.Append($dt1.Rows[$i][$col1.ColumnName]) 
            [void]$line.Append("|")                                  
            }
            else 
            {[void]$line.Append("|")}       
        }

$line 是 StringBuilder 对象。

我还尝试使用嵌套的 foreach 循环将文件 1 中的每一列与文件 2 中的每一列进行比较,但这也没有帮助。我采用了数据表列的枚举器,并使用 while 循环移动下一步,然后采用当前指针,但这也无济于事。

.net datatable powershell-4.0
1个回答
0
投票

Columns 属性 ($dt2.Columns) 不返回列名字符串数组,而是返回 DataColumns 数组。 因此,您的 Contains() 方法应该运行在 $dt1.Columns.ColumnName 并且不在 $dt1.列

© www.soinside.com 2019 - 2024. All rights reserved.