标题名称和跳过第一行

时间:2018-07-19 12:27:39

标签: powershell

Excel来源:有2列2行(第一行有标题)

下面提到的代码将数据库中的空白行导入...

但是,如果删除-Skip 1-它会同时导入两行(一个具有标题,另一个具有值)

Import-CSV $DestinationFile -Header Col1, Col2 | Select-Object -Skip 1
ForEach-Object {Invoke-Sqlcmd -Database $database -ServerInstance $server -Query "insert into $table VALUES ('$($_.Col1)','$($_.Col2)')"}

有人可以告知上述代码有什么问题吗,我们希望跳过标题,并为标题提供自定义名称(因为文件中的标题名称很大)

1 个答案:

答案 0 :(得分:3)

Import-CSV假定给定的csv文件的第一行是标题。因此,如果使用-header开关并指定标题,则Import-CSV也会将csv文件中的第一行用作数据行。

此外,您忘记了将导入的csv对象通过管道传递到foreach-object循环中。

Import-CSV $DestinationFile | ForEach-Object {Invoke-Sqlcmd -Database $database -ServerInstance $server -Query "insert into $table VALUES ('$($_.Col1)','$($_.Col2)')"}