【发布时间】:2019-02-25 22:53:54
【问题描述】:
我要做的是从具有 UserPrincipalnames 的 csv 文件中导入数据,并且我在 @ 符号之前使用名称,然后我想将该数据导出到同一 CSV 文件中的特定列中案例是 o365Users.csv。我可以将其写入文本文件,但我需要知道如何将其导出到 G 列,标题名称为 SAM
这是我的代码:
$Addys = Import-Csv "C:\scripts\o365Users.csv"
$UPNs = $Addys.UserPrincipalName
foreach ($UPN in $UPNs) {
$Name = $UPN.Split("@")[0]
Write-Output $Name >> c:\scripts\o365Names.txt
}
【问题讨论】:
-
如果你
Import-CSV,你会得到一个对象数组,其中每个对象都有一个字段对应于工作表中的每一列。然后,您可以对数组中的值进行就地更改(例如,$foo[99].ColumnG = 'bar'),完成后,只需将Export-CSV数组返回文件即可。 -
如果您要添加列,那么您必须使用附加字段创建一个新对象数组,并且
Export-CSV新对象数组而不是旧的。 -
Import-Csv -Path $path | % { $_.Name = $_.UserPrincipalName.Split('@')[0]; $_ } | Export-Csv -Path $path -NoTypeInformation -Force
标签: powershell csv export-csv