Foreach循环不导出到csv

时间:2014-10-10 17:20:22

标签: powershell foreach export-to-csv

PowerShell脚本

$(foreach ($k in $sql_output){
    $ip = $k[0]
    $present = $k[1]
    write-output $ip, $present   
}) | export-csv D:\Script\is_present.csv

我希望is_present.csv看起来像

10.10.10.10    1
10.10.10.11    1
10.10.10.12    0

相反,它看起来像

#TYPE System.DBNull

如何解决?

2 个答案:

答案 0 :(得分:1)

试试这个

 $(foreach ($k in $sql_output){ 
       $ip = $k[0] 
       $present = $k[1]
       $out = "{0,20}{1,30} -f $ip, $present
       Write-output $out
     }) | out-file D:\Script\is_present.csv

答案 1 :(得分:1)

$(foreach ($k in $sql_output){ 
    [PsCustomObject]@{
        'IP' = $k[0]
        'Present' = $k[1]
    }
}) | Export-Csv c:\temp\temp.csv -NoTypeInformation

循环与以前大致相同。 Export-Csv可以更好地处理对象,因此不知道您的数据来自何处,并使用[pscustomobject]需要PowerShell 3.0 )进行对象。获取该数据并将其传递到Export-Csv的下一个管道。 -NoTypeInformation会阻止#TYPE System.Management.Automation.PSCustomObject成为文件的第一行。