最近在某些Windows 10计算机上,我注意到
Get-Service | Export-Csv "C:\users\[xxx]"
创建一个.csv文件,如果在Excel中打开该文件,则该文件会在A列中显示所有属性。我习惯于将每个属性输出到单独的列中。
两台计算机上的Windows和Office版本相同。 Windows:1709(内部版本16299.431) 办公室:1802(内部9029.2253 CTR)
Excel-Online还在一行中显示输出。
在每台计算机上右键单击.csv文件,将显示不同的文件类型: 显示多列的“ CSV文件(.csv)”与在一列中打开的“ Microsoft Excel-CSV-文件(.csv)”。
此外,文件图标不同。
有人经历过这种情况,并且知道为什么会这样吗?
我对哪种是正确的行为感到困惑。
感谢您的输入。
答案 0 :(得分:3)
Export-CSV
使用,
分隔列,而excel希望;
作为分隔符。
处理这种情况的最简单方法是改用以下方法:
Export-Csv "C:\users\[xxx]" -Delimiter ';'
这将使用.csv
而非;
创建,
文件。
您可能在两台计算机上都有不同的默认定界符,这里的答案很好地说明了这一点:How to get Excel to interpret the comma as a default delimiter in CSV files?
答案 1 :(得分:1)
对我来说,问题出在写csv文件的编码中。
当我在PowerShell中使用Out-File
时,它以UCS-2 Little Endian
编码,并且所有内容最终都集中在一栏中。
我为您提供的解决方案是:
Get-Service | Export-Csv -Path "C:\users\[xxx]" -NoTypeInformation -Encoding UTF8 -Force