在PowerShell中格式化要导出为CSV的表

在PowerShell中格式化要导出为CSV的表,powershell,csv,Powershell,Csv,我严重缺乏睡眠和压力,所以这可能非常简单,但我仍然无法设法弄明白 我想导出各种内容,如服务、流程、防火墙规则、本地用户,以及我需要的任何CSV,但每当我将其导出为CSV时,打开它时,它在Excel中只有一列 我只希望输出以列分隔,这样我就可以在Excel中有一个简单的概述 Get-Service | Sort-Object Status | Format-Table -AutoSize | Out-String -Width 10000 | Out-File -Append "C:\temp\T

我严重缺乏睡眠和压力,所以这可能非常简单,但我仍然无法设法弄明白

我想导出各种内容,如服务、流程、防火墙规则、本地用户,以及我需要的任何CSV,但每当我将其导出为CSV时,打开它时,它在Excel中只有一列

我只希望输出以列分隔,这样我就可以在Excel中有一个简单的概述

Get-Service | Sort-Object Status | Format-Table -AutoSize | Out-String -Width 10000 | Out-File -Append "C:\temp\Test.csv"
但这是我得到的结果:


如果我使用导出CSV命令,就会发生这种情况:

那么为什么不直接导出到CSV呢

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

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

Get-Service | sort Status | Export-Csv "C:\temp\Test.csv" -NoTypeInfo -Delim ";"
或者使用
-use culture
开关(谢谢@JosefZ),该开关使用与Excel相同的基于区域的ListSeparator设置:

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

同样的事情发生了,我添加了一个截图作为well@LeviHen省略
|选择名称、显示名称、状态
部分以获取所有属性。@JosefZ我实际上已经这样做了,因为我想要所有信息!!:D不,但说真的,我只想从powershell中得到一个格式化的表,我可以在Excel中打开,然后将它拖放到Confluence或类似的地方,以记录客户环境。我可以自己使用TXT(格式看起来很好),但有些人需要在Excel中通读它,所以我现在只能这样做:DI在两个系统上进行了尝试,这两个系统都有一个股票窗口和股票办公室(2010年和2016年)。这可能与时间/地点有关,因为当我开始使用这些设置时,我可以让它工作,问题是我不能(不应该)更改生产服务器上的这些设置;)不管怎么说,上面Marsze用-delim“;”的解决方案对我和这个目的都有效。区域设置中有趣的差异。我想知道欧洲delim违约是不是因为欧元定价中的逗号而变成了分号
3,99欧元
。。在英国,它是一个点
£3.99
,因此逗号不会分割价格列。
格式表
创建固定宽度的表,而不是逗号分隔的值。您需要在文本导入向导中尊重它。是的,您的第二个图像是Excel问题,而不是导出问题。是的,就是它!!非常感谢Marsze,如果你在阿姆斯特丹,我会给你买杯咖啡:用
-UseCulture
开关代替
-Delimiter”;“