【发布时间】:2019-03-30 02:26:46
【问题描述】:
我有一个没有标题的 CSV 文件,我需要在第一列和第二列之间添加一列。我最终想将没有标题的文件导出到相同的文件名(因此我使用 Import-CSV 与 Get-Content)。
这是将新列添加到现有文件的脚本:
(Import-CSV U:\To_Delete\Layer_search\WB_layers-mod.csv) |
Select-Object *,@{Expression={'FALSE'}} |
Export-Csv U:\To_Delete\Layer_search\WB_layers-mod.csv -NoTypeInformation
这会将新列添加为第三列。在进行谷歌搜索时,如果没有标题行,我找不到对列重新排序的方法,因此我将脚本修改如下:
(Import-CSV U:\To_Delete\Layer_search\WB_layers-mod.csv -header H1, H2)|
Select-Object *,@{Name='H3';Expression={'FALSE'}} |
Select-Object -Property H1, H3, H2 |
Export-Csv U:\To_Delete\Layer_search\WB_layers-mod.csv -NoTypeInformation
这会将列按正确的顺序排列,但现在我想导出没有添加标题行的 CSV。但是,我发现的唯一建议是使用 Get-Content、Convert-to-CSV 和使用 Skip 1。这对我不起作用,因为我只运行 PS3,并且该选项在 PS5 之前不可用,并且我想保存回原来的文件名,Get-Content 做不到。
我可能让这件事变得比实际需要的困难得多,但如果有任何建议,我将不胜感激。
谢谢!
编辑添加:
为澄清起见,这里是我正在导入的 CSV 文件的示例:
abc,1/1/2012
def,1/2/2012
ghi,1/3/2012
我想在第一列和第二列之间添加一列:
abc,FALSE,1/1/2012
def,FALSE,1/2/2012
ghi,TRUE,1/3/2012
希望这更有意义。
【问题讨论】:
标签: powershell csv powershell-3.0