【问题标题】:export data to csv in powershell在powershell中将数据导出到csv
【发布时间】:2020-12-15 07:24:52
【问题描述】:

我想将我的数据导出到 csv 文件,谁能建议我怎么做。

我的数据

  @{Id=22; AccountId=56; ActivationDate=Wed, 25 Nov 2020 12:00 AM; AssignedBy=34}
  @{Id=23; AccountId=57; ActivationDate=Sun, 01 Nov 2020 12:00 AM; AssignedBy=35}
  @{Id=24; AccountId=58; ActivationDate=Sun, 01 Nov 2020 12:00 AM; AssignedBy=36}

谢谢, 马赫什K

【问题讨论】:

  • 到目前为止你尝试过什么?请出示您的代码。
  • $MyData | Export-Csv .\MyData.csv -Delimiter ';'
  • 嗨 iRon,我试过这个,$testObject = [pscustomobject]$response.Content $testObject = $testObject | ConvertTo-Csv $testObject | Export-Csv 'D:\Safe.Csv' 我得到的输出是 #TYPE System.String "Length" "8223967" 不是 csv 的形式
  • 请告诉我们$myData到底是什么。输入$myData.GetType().FullName。那是一个哈希表数组吗?一个字符串?您如何获得这些数据?

标签: powershell csv


【解决方案1】:

试试这个。

$mydata = @()

$mydata +=  [pscustomobject]@{Id=22; AccountId=56; ActivationDate='Wed, 25 Nov 2020 12:00 AM'; AssignedBy=34}
$mydata +=  [pscustomobject]@{Id=23; AccountId=57; ActivationDate='Sun, 01 Nov 2020 12:00 AM'; AssignedBy=35}
$mydata +=  [pscustomobject]@{Id=24; AccountId=58; ActivationDate='Sun, 01 Nov 2020 12:00 AM'; AssignedBy=36}


$mydata | Export-Csv Myfile.csv -notype

首先要做的是将数据中的日期转换为字符串。这对于防止 PS 尝试解析逗号并混淆是必要的。无论如何,日期将是 csv 文件中的字符串。如果您想找出表达日期的最佳方式,请提出单独的问题。

接下来我将每个哈希表转换为 PSCustomobject。这种类型的对象是 Export-csv 知道如何使用的对象。

接下来就是将所有三个项目收集到一个数组中,并将其存储在一个变量中。

最后,我将生成的变量通过管道传输到 Export-csv 中,提供了一个虚拟文件名。

【讨论】:

    【解决方案2】:

    看起来这是格式化数据而不是导出到 csv 的情况,所以:

    Get-Content mydata | ForEach-Object { $line=$_.replace(";",","); $strp=$line.Split("[{}]"); Write-Output $strp[1] } > csvfile.csv
    

    获取mydata中的每一行数据并替换任何“;”和 ”,”。拆分数据,以便我们可以获取“{”和“}”之间的数据打印转换后的行并重定向到新文件 csvfile.csv

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 2014-01-29
      • 1970-01-01
      • 2015-01-17
      • 2018-12-04
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多