我试图导出为CSV集合哈希表项目名称/值对。 在我还没有找到的代码的选择对象部分正确的语法。 我的CSV文件,以对URL和所有者columes。 谢谢您的帮助
[System.Collections.ArrayList]$collection = New-Object System.Collections.ArrayList($null)
$SiteInfo = @{};
$SiteInfo.Url = "http://some.url.com";
$SiteInfo.Owner = "Joe Smith";
$collection.Add($SiteInfo);
$SiteInfo.Url = "http://another.url.com";
$SiteInfo.Owner = "Sally Jones";
$collection.Add($SiteInfo);
$collection | foreach{
$hashTableDate = $_;
$hashTableDate | Select-Object -Property Url, Owner;
}| Export-Csv "C:\UsageReport.csv" -NoTypeInformation -Encoding UTF8 -Delimiter '|'
# results: file is empty :(
转换为PSObject,然后导出为CSV
所有这一切“的foreach”的东西是没有必要的。 只要你的哈希转换为PSObject然后导出!
此示例使用ArrayList中存储的哈希表,然后将导出的ArrayList到CSV。
[System.Collections.ArrayList]$collection = New-Object System.Collections.ArrayList($null)
$SiteInfo = @{}
$SiteInfo.Url = "http://some.url.com"
$SiteInfo.Owner = "Joe Smith"
$collection.Add((New-Object PSObject -Property $SiteInfo)) | Out-Null
$SiteInfo = @{}
$SiteInfo.Url = "http://another.url.com"
$SiteInfo.Owner = "Sally Jones"
$collection.Add((New-Object PSObject -Property $SiteInfo)) | Out-Null
$collection | Export-Csv "UsageReport.csv" -NoTypeInformation -Encoding UTF8 -Delimiter '|'
事情将无法正常工作。
请注意,虽然该作品在这里:
$collection.Add((New-Object PSObject -Property $SiteInfo))
......这里有一些东西是行不通的:
对于这些,你将获得在CSV文件中的错误信息和/或怪异的条目。
为什么“出空”?
附加说明: $collection.Add()
输出指数 ,当你运行它的最高有效指标。 该| Out-Null
| Out-Null
只是扔掉这个数字,如果你不想要它。