Powershell CSV输出-无法删除行和特殊字符

时间:2018-10-21 08:17:43

标签: sql powershell csv

我在处理csv文件时遇到了麻烦。我的脚本正在从SQL表收集数据,然后应将结果写为csv文件。我的问题是我的代码当前创建的csv文件具有语音标记和两行我不想要的标题。

现在我的文件如下:

  

TYPE System.Data.DataRow

     

代码,“订单”,“价格”

     

product1,“ 1”,“ 207,75”

     

product2,“ 1”,“ 95,24”

我希望它看起来像这样:

  

product1; 1; 207,7

     

product2; 1; 95,24

我的代码:

$VAR1 = "select [product], [order], [price] from TABLE1
$VAR2 = Invoke-Sqlcmd -Query $VAR1 -serverinstance SERVER1
$Result | Export-Csv -path C:\test55.csv

1 个答案:

答案 0 :(得分:1)

您可以使用TYPE上的-NoTypeInformation开关删除Export-CSV标题行。

我认为您不能关闭语音标记,但是如果您的数据值之一包含逗号,它们将非常有用。如果您在Excel中打开CSV,则语音标记将不可见,因此阅读CSV的内容会很荣幸。如果您想删除它们,则可以执行-replace来删除,但是冒着删除它们在数据中的位置的风险。

如果要删除标题行,可以使用ConvertTo-CSV,然后使用Select-Object跳过输出的第一行。

例如:

$VAR1 = "select [product], [order], [price] from TABLE1"
$VAR2 = Invoke-Sqlcmd -Query $VAR1 -serverinstance SERVER1

($Result | ConvertTo-Csv -NoTypeInformation |
    Select-Object -Skip 1) -Replace '"' |
    Out-File C:\test55.csv