gpt4 book ai didi

powershell-2.0 - 将 Hashtable 数据集合导出为 CSV

转载 作者:行者123 更新时间:2023-12-04 23:04:04 26 4
gpt4 key购买 nike

我正在尝试将集合哈希表项的名称/值对导出为 CSV。我还没有找到代码的 select-object 部分的正确语法。我希望 CSV 文件为 Url 和 Owner 提供 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存储 HashTables,然后将该 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))

...这里有一些行不通的事情:
  • 省略一组括号将不起作用:
    $collection.Add(New-Object PSObject -Property $SiteInfo)
  • 遗漏了 -property参数标签将不起作用:
    $collection.Add((New-Object PSObject $SiteInfo))
  • 只是使用 +=不管用:
    $collection += $SiteInfo

  • 对于这些,您将在 CSV 文件中收到错误消息和/或奇怪的条目。

    为什么是“Out-Null”?

    附加说明: $collection.Add() outputs the index运行时的最高有效索引。 | Out-Null如果你不想要这个数字,就扔掉它。

    关于powershell-2.0 - 将 Hashtable 数据集合导出为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407239/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com