例如,
我有CSV文件并导入到PowerShell
undefined
输出
$fullname = Import-Csv “fullname.csv”
$fullname
我有另一个CSV文件并导入
FullName
------------------
John Smith
Kevin Johnson
输出
$Email = Import-Csv “Email.csv”
$Email
我想将这2个变量连接起来并导出为一个csv文件,所以我试过这个
Email
-------
jhrjf@gmail.com
hheraf1010@gmail.com
我也尝试这样
$fullname = Import-Csv “fullname.csv”
$fullname
$Email = Import-Csv “Email.csv”
$Email
($fullname+$Email)|Export-Csv C:\fullnameandEmail.csv -NoTypeInformation
但它没有用,
我想制作如下的csv,如何连接这2个贵重物品?
-join($fullname,$Email)|Export-Csv C:\fullnameandEmail.csv -NoTypeInformation
非常感谢
答案 0 :(得分:2)
了解导入CSV后内存中的$fullname
和$email
对象实际上是对象数组,这很有帮助。每个对象都有一个或多个属性,表示CSV中的列值。
您可以遍历任一阵列中的对象,并使用Add-Member cmdlet向每个对象添加新属性。
以下代码循环遍历$email
数组,对于每个项目,它会将具有Email值的属性添加到$fullname
数组中的相应项目。然后,它将合并的数组导出为CSV文件。
$fullname = Import-Csv "fullname.csv"
$email = Import-Csv "Email.csv"
$i = 0
$email | ForEach-Object {
Add-Member -inputobject $fullname[$i] -name Email -value $_.Email -membertype NoteProperty;
$i++}
$fullname | Export-Csv -notype -path "C:\fullnameandEmail.csv"
答案 1 :(得分:2)
因此,为了简单起见,我将结合其他两个建议的内容。使用For
循环,然后在循环中使用Add-Member
。
$fullname = Import-Csv “fullname.csv”
$Email = Import-Csv “Email.csv”
For($i=0;$i -lt $fullname.count;$i++){
$FullName[$i] | Add-Member 'Email' $Email[$i].email
}
$FullName | Export-CSV -NoType Output.csv
答案 2 :(得分:1)
$names = Import-Csv "fullname.csv"
$emails = Import-Csv "email.csv"
for ( $n = 0; $n -lt $names.Count; $n++ ) {
New-Object PSObject -Property @{
"FullName" = $names[$n].FullName
"Email" = $emails[$n].Email
} | Select-Object FullName,Email
}