将新数据添加到CSV

时间:2017-05-08 15:58:57

标签: powershell csv

所以我有一个包含3列的CSV:VM,GB,Timestamp。

我想做的是:

如果文件不存在,请从数据集$VMdata创建新的CSV。否则,使用$VMdata中尚未包含$csv的数据来更新CSV($VMdata以来的新数据也将包含一堆旧数据)。

我试图使用以下代码:

if (![System.IO.File]::Exists($csv)) {
    $VMdata | Export-Csv $csv -NoTypeInformation
} else {
    $importvmstat = Import-Csv $VMdata

    $newvmstat = $importvmstat + $VMstattest | Select Unique
    $newvmstat | Export-Csv $csv -NoTypeInformation
} 

不幸的是,由于某种原因$newvmstat = $importvmstat + $VMstattest没有按照我想要的方式工作,$newvmstat只包含其中一个数据。

1 个答案:

答案 0 :(得分:4)

您可以对两种方案使用单个命令,只需将-AppendExport-Csv一起使用:

$VMdata |  Export-Csv $csv -NoTypeInformation -Append

如果文件存在,它会将$VMData添加到文件中,否则将创建新文件。

导入现有csv并向其添加新数据,然后仅选择唯一条目:

$FullData = (Import-Csv -Path $csv) + $VMdata | Select -Unique VM,GB,Timestamp

$FullData | Out-GridView

$FullData | Export-Csv $csv -NoTypeInformation