【发布时间】:2019-05-08 15:56:04
【问题描述】:
我有一个 CSV 文件,其中包含一些用户和 ID 的数据,我必须在每个条目中添加一个由他们的 name.surname@domain 组成的邮件。虽然它设法将其打印到文件中,但当我打开文件时,它已被格式化,因此每一列都被分隔成一个条目。
$origin = Get-Content $file
$origin = foreach{ $line= $_.Split(",")
$line+","+line[0].ToLower()+"."+line[1].ToLower()+"@"+$domain
} | Set-Content $outputfile
如果文件有 1 个类似的条目
john,doe,1234
文件的输出应该是
john,doe,1234,john.doe@mail.com
而是将每个属性打印为一列
john
doe
1234
@
mail.com
是我使用了错误的打印方式还是循环错误?
【问题讨论】:
-
使用
Import-Csv读入数据,如果没有header,用-Header参数指定。阅读Get-Help Import-Csv -
您发布的代码也是无效的,缺少
$符号并且第二行必须是$origin | foreach{ $line= $_.Split(",")另外$line是一个数组,由于拆分包含3个元素[0..2] ,如果你输出一个数组,元素默认在 sep 上。线。所以应该是$_+","+$line[0].ToLower()+"."+$line[1].ToLower()+"@"+$domain
标签: powershell csv