将CSV文件创建为对象

时间:2018-06-06 20:07:18

标签: powershell csv wrapper

我有一个强大的脚本来获取,解析并使用来自.csv文件的一些数据。要运行脚本,我可以使用

  

。\ script.ps1 -d data_file.csv

问题是我无法干扰脚本本身,这就是为什么我需要创建某种包装器,它将创建新的csv文件并使用带有新文件的script.ps1。我想知道是否有可能创建一个csv文件作为一个对象,将直接传递给这样的命令

  

。\ script.ps1 -d csv_file_as_object.csv

不在某个路径目录中创建文件。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要的是相当于Bash&#39; cordova-plugin-bluetoothle <(...)),简而言之,它将允许您将命令的输出显示为输出路径临时文件的内容:

.\scripts.ps1 -d <(... | ConvertTo-Csv) # !! does NOT work in PowerShell

注意:... | ConverTo-Csv代表将原始CSV转换为内存所需的任何命令。

自Windows PowerShell v5.1 / PowerShell Core v6.1起,

PowerShell 中不存在此类功能,但process substitution

如果 .\scripts.ps1碰巧也接受 stdin 输入(通过伪路径-表示stdin输入),你可以试试:

 ... | ConvertTo-Csv | .\script.ps1 -d -

否则,您唯一的选择是:

  • 将修改后的CSV数据保存到临时文件
  • 将该临时文件的路径传递给.\script.ps1
  • 删除临时文件。