gpt4 book ai didi

Powershell 输出文件不适用于 CSV

转载 作者:行者123 更新时间:2023-12-04 10:25:01 24 4
gpt4 key购买 nike

我有以下代码:

$databaseContents = "col1,col2,col3,col4"
$theDatabaseFile = "C:\NewFolder\Database.csv
$databaseContents | Out-File $theDatabaseFile

但是,当我在 Excel 中打开 csv 文件时,它在单元格 A1 中有 col1,col2,col3,col4 而不是单元格 A1 中的 col1、单元格 B1 中的 col2 等。

我注意到了一些奇怪的事情:
如果我在记事本中打开文件并将文本复制到另一个记事本实例并将其另存为 Database1.csv,然后在 Excel 中打开它,它会按预期显示。

我如何获得 Out-File commandlet 将其保存为 .csv 文件,内容如预期的在 4 列中?

编辑:
我注意到我是否使用 Set-Content而不是 Out-File ,csv 文件随后会在 Excel 中正确显示。
有人知道为什么是这样吗?

最佳答案

为什么它对 Excel 有影响我不清楚,但归结为结果输出文件的编码 - Unicode(在不起作用的情况下)与 ASCII(在起作用的情况下)。

PowerShell Out-File vs. Set-Content to a CSV File

@JPBlanc 的替代方法有效,因为它将输出文件的编码设置为 ASCII,其中您的原始示例(隐式)将输出文件的编码设置为 Unicode。

只需添加 -Encoding ascii你原来的例子也很好用:

$databaseContents = "col1,col2,col3,col4"
$theDatabaseFile = "C:\NewFolder\Database.csv
$databaseContents | Out-File $theDatabaseFile -Encoding ascii

并添加一个明确的 -Encoding unicode对您的原始示例产生与您遇到的相同的损坏结果:
$databaseContents = "col1,col2,col3,col4"
$theDatabaseFile = "C:\NewFolder\Database.csv
$databaseContents | Out-File $theDatabaseFile -Encoding unicode

这基本上是隐含发生的事情。

关于Powershell 输出文件不适用于 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23862028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com