将csv文件exportc-csv读取到多个文件

时间:2013-09-05 09:49:41

标签: powershell csv

我创建了一个带有几行或几行的csv文件。现在想想是导入该文件并在每行创建一个新文件。所以每一行都有自己的内容文件。

我创建了以下powershell代码:

$Import = import-csv C:\temp\output.csv

$CreateFileName = $Import | Select-Object $_.TicketNumber -Expand "TicketNumber"
foreach ($row in $Import)
  {
    export-csv -Path $row.CreateFileName.csv -noType
  }

运行此脚本时出现以下错误:

cmdlet Export-Csv at command pipeline position 1
Supply values for the following parameters:
InputObject:

3 个答案:

答案 0 :(得分:0)

如果您希望输出文件包含标题行TicketNumber的票号,您可以执行以下操作:

Import-Csv 'C:\temp\output.csv' | select TicketNumber | % {
  Export-Csv -Input $_ -Path "$($_.TicketNumber).CreateFileName.csv" -noType
}

如果您希望输出文件只包含故障单编号(没有标题行),您可以执行以下操作:

Import-Csv 'C:\temp\output.csv' | select TicketNumber -Expand TicketNumber | % {
  Set-Content "$_.CreateFileName.csv" $_
}

答案 1 :(得分:0)

那是因为以下内容没有返回任何内容:

$row.CreateFileName.csv

所以整条线变成了:

export-csv -Path -noType 

和PowerShell有帮助地认为你忘记了这条道路。

答案 2 :(得分:-1)

这不是错误。 您没有为cmdlet指定InputObject参数。 您可以修复或明确设置此参数:

export-csv -Path $row.CreateFileName.csv -noType -InputObject $row

或者通过管道将其发送到cmdlet:

$row | export-csv -Path $row.CreateFileName.csv -noType
相关问题