Powershell+csv:读取第1列,修改内容并将其写在第2列中



我在Powershell方面真的不是很好,只接受了很多谷歌研究。

我有一个CSV文件,在第1列是一堆单词。

例如:

Wild
Copy
Hell
Tom
Snow

我想写一个Powershell脚本,在每一行中读取第1列中所写的内容,向其中添加字符,并将其写在第2行中。

例如:

Coumn1 - Column2
Wild - Wildcat
Copy - Copycat
Hell - Hellcat
Tom - Tomcat
Snow - Snowcat

我真的没有什么东西能起作用,我脑子里想的是这样的:

$CSV = Import-CSV 'c:/Path2CSV'
ForEach ($row in $CSV)
{
$Modified = Column1 + "cat"
write $Modified > column2
}
}

如果有人能给我一个提示,我会很高兴的。

事先感谢的任何回复

如果您的输入csv(只有一列的csv(在值上方有一个标题,请使用读取

$CSV = Import-CSV -Path 'C:PathToinput.csv'

如果这个文件只是一系列单词,每个单词都在自己的行上,并且没有标题,请使用

$CSV = Import-CSV -Path 'C:PathToinput.csv' -Header Column1

然后,当您在变量$CSV中有数据时,循环并创建一个新的CSV:

$newCsv = foreach ($row in $CSV) {
# output an Object that gets collected in variable $newCsv
# Select-Object * takes everything already in $row, 
# @{Name = 'Column2'; Expression = {$row.Column1 + 'cat'}} adds the extra column to it.
$row | Select-Object *, @{Name = 'Column2'; Expression = {$row.Column1 + 'cat'}}
}
# output on screen:
$newCsv
# output to new CSV file
$newCsv | Export-Csv -Path 'C:PathTooutput.csv' -NoTypeInformation

输出(屏幕上(:

Column1 Column2
------- -------
Wild    Wildcat
Copy    Copycat
Hell    Hellcat
Tom     Tomcat 
Snow    Snowcat

有更多的方法可以实现你想要的,上面只是尽量接近你建议的伪代码

最新更新