我是powershell的新手。我试图在CSV文件的最后一列中更改姓氏,名字到名字,姓氏,并导出我对新csv文件所做的所有更改。
数据看起来像这样。
体育,性别,邮编,招聘人员 "棒球","男"," 12345","约翰,韦恩"
我尝试使用
Get-Content "C:\import.csv" |
ForEach-Object {$_.Recruiter -replace ",", ""} |
ForEach-Object {$_.Sport -replace ",", ""} |
Set-content "C:\export.csv"
这是一个示例代码,当然,它不起作用,但我必须使用ForEach-Object将一堆标点符号更改为每一列,并希望最后一列" F_name L_name&#34 ;。当我使用$ _。Recruiter来调用列时,我只得到空的csv文件。当我使用Import-csv而不是Get-content时,我只选择了列,所有其他列都丢失了。任何帮助将非常感激。
谢谢。
答案 0 :(得分:2)
我认为您使用Import-Csv执行此任务是正确的。使用这些字段作为对象属性比尝试将它们解析为字符串要容易得多。试试这个。
Import-Csv "import.csv" |
foreach {
$_.Recruiter = "{1}, {0}" -f ($_.Recruiter -split ', ')
$_
} |
Export-Csv "export.csv"
foreach中的第一行拆分Recruiter字段中的firstname / lastname,将它们反转,然后将它们放回到对象中。 foreach中的第二行只是将整个对象(包括您没有触及的字段)放回管道中。