将CSV数据按原样放入新CSV中

时间:2016-06-08 13:26:04

标签: csv powershell import

我有一个包含两列的CSV文件;身份和用户。 User列包含UserPrincipalNames,Identity列包含名称。我想要做的是获取Userprincipalnames并从中获取Displayname,我能够做到。

我无法弄清楚如何获取每一行身份(已在我导入的csv中)与新发现的Displayname一起显示。我没有使用Identity列来获取任何内容,我只是想再次显示这些值。

我正在使用的代码是:

lastColumn

这会获得$accounts = ipcsv 'D:\code-folder\small-results.csv' $accounts | % { $Identity = $_.Identity $User = $_.User Get-MsolUser -UserPrincipalName $User | select Displayname } ,但仅此而已。我尝试将displayname变量放在select中,但这不起作用。我觉得必须有一个简单的解决方案。

例如,CSV文件中的一行看起来像this

但我希望输出看起来像this,但我输出的输出遗漏了Identity,我不知道如何添加它。

2 个答案:

答案 0 :(得分:2)

您可以使用Select-Objectselect)制作自定义列:

$accounts = ipcsv 'D:\code-folder\small-results.csv'

$accounts | % {
    $Identity = $_.Identity
    $User = $_.User
    Get-MsolUser -UserPrincipalName $User | select @{n='Identity';e={$Identity}},Displayname
}

答案 1 :(得分:2)

我会为每一行创建一个新的PSCustomObject并将结果传递给Export-Csv

$accounts = ipcsv 'D:\code-folder\small-results.csv'

$accounts | % {
    [PSCustomObject] @{
        Identity = $_.Identity
        User = Get-MsolUser -UserPrincipalName $_.User | select Displayname
    }
} | Export-Csv -Path 'D:\code-folder\small-results.csv' -NoTypeInformation