在Powershell中按列顺序合并两个csv列

时间:2019-02-21 17:10:18

标签: powershell csv

我目前正在使用下面找到的代码将2列合并为一个新列。问题是当我导出csv时,列的排列顺序不符合我在下面列出的顺序。如何将列按所需顺序排序?

谢谢

$objs =@();
$output = Import-csv -Path C:\Users\Dan\Desktop\External_ID_Test.csv | ForEach { 
    $Object = New-Object PSObject -Property @{            
        Employee_ID      = $_.Employye_ID
        Base_Cost_Center = $_.Base_Cost_Center
        Entity           = $_.Entity    
        ExternalID       = [String]::Concat($_.Entity,$_.Base_Cost_Center)  
    }   
    $objs += $Object;
} 
$objs 
$objs | Export-CSv C:\Users\Dan\Desktop\Export_External_ID_Test.csv -NoTypeInformation

1 个答案:

答案 0 :(得分:0)

您正在将ForEach-Object的输出分配给变量$Output,但是什么都不输出。

使用有序的[PSCustomObject]并避免使用+=来简化脚本,该脚本将在每次迭代时重建数组$objs

$output = Import-csv -Path C:\Users\Dan\Desktop\External_ID_Test.csv | ForEach-Object { 
    [PSCustomObject]{            
        Employee_ID      = $_.Employye_ID
        Base_Cost_Center = $_.Base_Cost_Center
        Entity           = $_.Entity    
        ExternalID       = [String]::Concat($_.Entity,$_.Base_Cost_Center)  
    }   
} 
$output
$output | Export-CSv C:\Users\Dan\Desktop\Export_External_ID_Test.csv -NoTypeInformation