Arrays Can';t将字符数组写入Powershell中的文件

Arrays Can';t将字符数组写入Powershell中的文件,arrays,file,powershell,Arrays,File,Powershell,好吧,Powershell可能不是这项工作的最佳工具,但它是我唯一可用的工具 我有一堆600K+行.csv数据文件。它们中的一些有定界符错误,例如“在文本字段的中间或“在一开始时。它们太大,无法编辑(即使在UnEdvEdE中),即使我不想手动,也要手动修复! 因为在某些文本字段的起始处,“双”-“去表”和“在某些文本字段中间”的分隔符,所以我没有使用头行来定义列,因为这些行看起来像额外的定界符中有一个额外的列。 我需要在文本字段开始时解析“查找”而不是“查找”文件,并在“文本字段的中间”中查找“

好吧,Powershell可能不是这项工作的最佳工具,但它是我唯一可用的工具

我有一堆600K+行.csv数据文件。它们中的一些有定界符错误,例如“在文本字段的中间或“在一开始时。它们太大,无法编辑(即使在UnEdvEdE中),即使我不想手动,也要手动修复!

因为在某些文本字段的起始处,“双”-“去表”和“在某些文本字段中间”的分隔符,所以我没有使用头行来定义列,因为这些行看起来像额外的定界符中有一个额外的列。

我需要在文本字段开始时解析“查找”而不是“查找”文件,并在“文本字段的中间”中查找“删除”。

我已经成功地编写了实现这一点的代码(以某种方式),基本上是将整个文件读入一个数组,循环遍历它,并将输出字符添加到一个输出数组中

我没有成功地将这个输出数组写入一个文件

我已经阅读了其中似乎相关的每一部分。我也在这个网站上搜索了大约10个类似的问题,并尝试了从中收集到的各种代码

使用写主机,输出阵列可以完美地打印到屏幕上,但我无法出于爱或金钱将数据返回到文件中。到目前为止,我总共有1.5天的Powershell体验!所有的建议都受到了感激

以下是我的代码,用于读取/识别恶意分隔符(一点也不漂亮,请参阅前面的数据说明和可用的技术约束):

到目前为止还不错,虽然不雅观。如果我做一个简单的

Write-Host $ContentOutputArray 
数据很好地显示为“65”、“652|999”、“99”、“678|1”。。。。。此外,当我检查数组的大小时(基于一个问题文件的精简版本)

我得到的数组长度为2507个字符。开心吧。但是,然后,使用不同的方法:

   $ContentOutputArray | Set-Content 'myfile_FIXED.csv' 
创建空白文件

   $ContentOutputArray | out-file 'myfile_FIXED.csv' -encoding ASCII 
   $ContentOutputArray | export-csv 'myfile_FIXED.csv' 
创建空白文件

   $ContentOutputArray | out-file 'myfile_FIXED.csv' -encoding ASCII 
   $ContentOutputArray | export-csv 'myfile_FIXED.csv' 
仅在文件中提供“#TYPE System.Char”

   $ContentOutputArray | Export-Csv 'myfile_FIXED.csv' -NoType 
提供空文件

   $ContentOutputArray >> 'myfile_FIXED.csv' 
给出空格,空格之间用

我还可以尝试将字符数组写入平面文件吗?这似乎是个很基本的问题,但却把我难住了。感谢阅读。

在导出字符数组之前,将其转换(或强制转换)为字符串

(New-Object string (,$ContentOutputArray)) |Set-Content myfile_FIXED.csv

您使用的是哪个版本的powershell?版本2.0 MatthiasHi,它引发了一个错误,因此我将其修改为[string]$ContentOutputArray |设置内容为“myfile_FIXED.csv”,效果很好。非常感谢。