所以我有一个包含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
只包含其中一个数据。
答案 0 :(得分:4)
您可以对两种方案使用单个命令,只需将-Append
与Export-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