Export-CSV是PowerShell的一个cmdlet,通过如下命令我们可以看到相关帮助信息。
Get-Help Export-CSV;
其摘要部分这样写道:
摘要
将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV)
字符串,并将这些字符串保存到一个 CSV 文件中。
那么我们如何将自定义的对象输出到CSV文件中呢?这里就需要一个对象类型的转换,经过一系列尝试找到一个相对简单的方式:
1.创建一个Hash表,其中key的内容就是将来需要输出到CSV中的列名,value的内容即是将来输出到CSV中的值;
$table = @{"name"="zhangsan";"age"=30;"sex"="male";};
2.将该Hash表转化为PSObject;
$pstable = New-Object -TypeName PSObject -Prop $table;
3.将转化后的PSObject插入到数组中,等待输出;
$pstablelist = @();
$pstablelist += $pstable;
4.重复1~3步,可以反复插入一些数据到待输出数组中;
$table = @{"name"="lisi";"age"=33;"sex"="male";};
$pstable = New-Object -TypeName PSObject -Prop $table;
$pstablelist += $pstable;
5.输出整个数组中的数据到CSV格式文件中;
$pstablelist | Export-CSV d:\list.csv;
输出后的CSV文件中的内容为:
#TYPE System.Management.Automation.PSCustomObject
"name","age","sex"
"zhangsan","30","male"
"lisi","33","male"