通过PowerShell将一个CSV字段替换为另一个

时间:2017-03-22 19:53:03

标签: powershell csv

在PowerShell中,我导入的CSV SAMTemp2将包含一个名为SO的字段。有时SO会填充&#34; NW&#34;在这些情况下,我只想从同一行中提取名为ProdProj的字段,并将SO中的数据替换为ProdProj中的数据,然后将该数据导出该条件。< / p>

$RepNW = Import-Csv $SAMTemp2
foreach($d in $data){
If($d.SO -eq "NW"){($d.SO).Replace($d.ProdProj)}}
$RepNW | Export-Csv $SAMTemp -NoTypeInformation

我没有收到错误,但这似乎也没有做任何事情。请问有人可以帮助我吗?

更新

下面的Per Matt,我试过了:

$RepNW = Import-Csv $SAMTemp2
foreach($d in $RepNW){
If($d.SO -eq "NW"){$d.SO = ($d.SO).Replace($d.ProdProj)}}
$RepNW | Export-Csv $SAMTemp -NoTypeInformation

但我没有看到任何改变。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

正如LotPings在此行.obj中指出的那样,您尚未定义foreach($d in $data){,而您似乎认为它是$data

其次,您可以将一个属性设置为等于另一个属性,而不是使用foreach($d in $RepNW){

最后,这可能最容易在Replace()

的管道中完成
ForEach-Object