首页 > 解决方案 > 将特定列复制到powershell中的csv

问题描述

我有两个 CSV 文件: CSV1 和 CSV2 像这样:

$csv1 :       

School                         Class     
---------                      ----------
School1                        C1
School2                        c2
School3                        c3

$csv2 :

FullName                      
---------                      
Fullname1
Fullname2
Fullname3

我用 :

$csv1 = Import-Csv C:\Tools\csv1.csv 
$csv2 = Import-Csv C:\Tools\csv2.csv

但是后来我完全迷失了如何在 csv1 中复制 csv2 以获得类似的东西:

School                         Class             FullName                      
---------                      ----------        ---------                      
School1                        C1                Fullname1
School2                        c2                Fullname2
School3                        c3                Fullname3

标签: powershellcsv

解决方案


您可以从这两个文件创建 PSCustomObjects 列表。因此,如果您绝对(我的意思是ABSOLUTELY)确定文件之间的行将正确匹配,您可以执行以下操作:

$csv1 = Import-Csv C:\Tools\csv1.csv
$csv2 = Import-Csv C:\Tools\csv2.csv
$list = [System.Collections.Generic.List[PSObject]]@()

for ($i = 0; $i -lt $csv1.Count; $i++) {
    $obj = [PSCustomObject]@{
        School = $csv1[$i].School
        Class = $csv1[$i].Class
        Fullname = $csv2[$i].FullName
    }
    
    $list.Add($obj)
}

Write-Output $list

结果:

School  Class Fullname
------  ----- --------
School1 C1    Fullname1
School2 c2    Fullname2
School3 c3    Fullname3

推荐阅读