【问题标题】:Outputting a 2 column csv file using Powershell使用 Powershell 输出 2 列 csv 文件
【发布时间】:2018-10-23 22:11:16
【问题描述】:

我正在比较 2 个 .csv 文件,我正在使用将结果保存在文本文件中

Foreach(..data in dataSet..) {
    #Setting variables

  if("$samInitials" -eq "$ambInitials") {

    "$firstName $lastName`t$samName`n" | Add-Content $outputFile

    #$account = New-Object psobject -Property @{'Name'="$firstName $lastName"; 'SamName'="$samName"}
  }
  #$outputFile += $account
}
#$outputFile | Export-Csv $outputCSVPath -NoTypeInformation
#commented out lines are the attempt to write to .csv file

如何制作(如果文件不存在则创建一个新文件)这个附加到 2 列的 .csv 文件,其中第 1 列是 first & last name,第 2 列是 samName?如果更简单,我可以手动创建 .csv 并自己命名列,但我不知道该怎么做。

我确实是 Powershell 的新手,如果这很明显,我很抱歉,但我在过去 5 个小时里一直在努力解决这个问题(也就是自从我学习了 Powershell 之后),我只需要最后一步的帮助

【问题讨论】:

  • get-help *-csv*

标签: powershell export-csv


【解决方案1】:

直接替换

"$firstName $lastName\: $samName `n" | Add-Content $outputFile

New-Object psobject -Property @{'Name'="$firstName $lastName";
                                                             'SamName'=$samName} | 
    export-csv c:\output.csv -append -notypeinformation

这会创建一个自定义对象,然后 powershell 可以直接将其转换为 csv

也不要难过,这并不明显。

【讨论】:

  • 我在前一次尝试的 foreach 循环之前有一个Add-Content -Path $outputCSVPath -Value '"Name", "SAM Name"'。在我摆脱这个之后,“只是替换”的建议起作用了,但是对于你的循环建议,我得到了一个 .csv,其中有一列名为 Length,值为 22970(写入 .txt 导致 51 行,所以我不确定该数字与什么有关)。无论如何都给了你第一个解决方案的复选标记,尽管更好地理解循环方法会很好
  • 第一个建议有效并附加,因为 powershell 可能会变得很挑剔,我现在没有设置来测试它,我将删除我的第二个建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 2021-01-01
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 2020-03-29
相关资源
最近更新 更多