在powershell中使用“导出csv”命令时,有关csv文件格式的查询

在powershell中使用“导出csv”命令时,有关csv文件格式的查询,powershell,Powershell,我熟悉使用Powershell将数据导出到csv,但特定供应商希望接收特定类型为“csv”的文件中的数据。如果我使用下面的示例命令,数据在原始csv格式(即通过记事本)中看起来很好,您可以看到它是逗号分隔的 JVF1033292,测试,SL,107006804626745.58643001843,测试,2020年8月12日,2020年8月14日,T,5584,JPY,0,XTKS,0 JVF1033293,测试,SL,369568051791362.845743001843,测试,2020年8月

我熟悉使用Powershell将数据导出到csv,但特定供应商希望接收特定类型为“csv”的文件中的数据。如果我使用下面的示例命令,数据在原始csv格式(即通过记事本)中看起来很好,您可以看到它是逗号分隔的

JVF1033292,测试,SL,107006804626745.58643001843,测试,2020年8月12日,2020年8月14日,T,5584,JPY,0,XTKS,0 JVF1033293,测试,SL,369568051791362.845743001843,测试,2020年8月12日,2020年8月14日,T,3524,JPY,0,XTKS,0

。。。但是,当在Excel中打开同一文件时,所有数据都在一行中,因此在供应商端失败。下面是我正在使用的代码

$Table | ConvertTo-Csv -NoTypeInformation | ForEach-Object {$_-replace "`"", ""} |  select -skip 1 | out-file -filepath ("$dir_opr\LVT\Export\CTO\ForJefferies\GMO_Jefferies_Trade_Data_" + $Date+ ".csv")
如果我使用下面的代码,那么它在Excel中看起来很好(正确地使用制表符),但是原始文件也使用制表符,而不是逗号分隔,供应商对此有问题

$Table | ConvertTo-Csv -Delimiter "`t" -NoTypeInformation | ForEach-Object {$_-replace "`"", ""} |  select -skip 1 | out-file -filepath ("$dir_opr\LVT\Export\CTO\ForJefferies\GMO_Jefferies_Trade_Data_" + $Date+ ".csv")
X JVF1032244测试450.0000 BYM41J3 10.00000000 43001843测试08/11/2020 08/13/2020 T 3.00日元0 XTKS 0.00
X JVF1032245测试200.0000 BYM41J3 250.00000000 43001843测试08/11/2020 08/13/2020


是否可以创建一个逗号分隔的、带制表符的原始文件,该文件在Excel中也是分隔的,因此不能全部放在一列中?

就本地测试而言,这可能是由于
out file
使用的默认编码,即
utf8NoBOM
。(有关详细信息,请参见
-Encoding
参数的说明:)


请尝试
out file-filepath$myfile-encoding utf8
,这似乎可以在我的机器上修复它。

据我所知,本地测试可能是由于
out file
使用的默认编码,即
utf8NoBOM
。试试
out file-filepath$myfile-encoding utf8
-这似乎可以在我的机器上修复它。是的,就是它,我添加了-encoding utf8,解决了它,谢谢!酷。我会把它作为一个答案,这样其他人就可以发现,如果他们遇到相同的问题更容易…好的,谢谢!我对使用这个很陌生,所以不知道如何结束它,但非常感谢!别担心。你通常只需等待至少24小时,看看是否能得到更好的答案,然后接受你最喜欢的答案。人们会向上或向下投票,共识最高的答案会浮到页面顶部。如果你愿意,你也可以投票支持你被接受的答案。