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)')"}
有人可以告知上述代码有什么问题吗,我们希望跳过标题,并为标题提供自定义名称(因为文件中的标题名称很大)
答案 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)')"}