在PowerShell中格式化表格以导出为CSV

时间:2019-01-25 10:46:46

标签: powershell csv

我的睡眠严重不足,压力很大,所以这可能非常简单,但我仍然无法解决。

我想导出各种内容,例如服务,进程,防火墙规则,本地用户,无论我需要将其作为CSV格式,但是每次以这种方式导出时,csv在打开时在Excel中都只有1列。

我只希望输出用列分隔,以便可以在Excel中进行简单的概述。

Get-Service | Sort-Object Status | Format-Table -AutoSize | Out-String -Width 10000 | Out-File -Append "C:\temp\Test.csv"

但这是我得到的输出: Services

如果我使用Export-CSV CMD,就会发生以下情况:Services

2 个答案:

答案 0 :(得分:2)

那为什么不仅仅导出到csv?

Get-Service | Select Name,DisplayName,Status | Sort-Object Status | Export-Csv "C:\temp\Test.csv" -NoTypeInformation

答案 1 :(得分:1)

PowerShell的默认CSV分隔符是逗号。要使Excel正确读取CSV,请使用-Delimiter参数将其更改为分号:

Get-Service | sort Status | Export-Csv "C:\temp\Test.csv" -NoTypeInfo -Delim ";"

或者使用-UseCulture开关(感谢@JosefZ),它使用与Excel相同的基于区域的ListSeperator设置:

Get-Service | sort Status | Export-Csv "C:\temp\Test.csv" -NoTypeInfo -UseCulture