export-csv只写在第1行

时间:2013-08-24 16:50:58

标签: powershell csv

我正在使用export-csv命令从powershell导出数据。一切正常(我已经通过debbuger逐步完成并查看csv文件中的数据更改)唯一的问题是数据只是一遍又一遍地写入第1行。我如何让它每行写一行(我使用的是foreach循环)?

1 个答案:

答案 0 :(得分:0)

除非你有PS 3.0,否则你不能使用Export-CSV附加到文件。例如:

$mylist | Foreach { 
    #Export item til csv.
    $_ | Export-CSV myfile.csv -notypeinformation
}

这将每次覆盖csv文件,因此它总是包含一个对象,这会导致包含头文件和循环中的LAST对象的csv文件。

使用PowerShell 3.0,您可以使用-Append开关,如下所示:

$mylist | Foreach { 
    #Export item til csv.
    $_ | Export-CSV myfile.csv -notypeinformation -append
}

如果您没有PowerShell 3.0,则需要手动创建csv-output并在循环中使用out-file -append之类的内容,或者同时导出整个数组(推荐),如:

$mylist | Select Name, Age | Export-CSV myfile.csv -notypeinformation

我使用上面的Select-object在导出到csv之前以正确的顺序选择了我想要的属性。