Powershell 分析具有不同列数且格式为Column=Data的CSV

Powershell 分析具有不同列数且格式为Column=Data的CSV,powershell,ssis,Powershell,Ssis,我有一些数据处于(不好的)分隔状态,我已设法将其转换为CSV进行进一步解析 我设法改变了它的格式: “时间戳”,“服务器名”,“进程名”,Column4=Data4,Column5=Data5,。。。第25列=数据25 实际上,这可能看起来像: 12:34:23,MyServerName,MyProcess,Type=10,Price=45.4,ProductType=AV 21:23:17,MyServerName2,MyProcess2,Type=10,ProductType=AV,Clas

我有一些数据处于(不好的)分隔状态,我已设法将其转换为CSV进行进一步解析

我设法改变了它的格式:

“时间戳”,“服务器名”,“进程名”,Column4=Data4,Column5=Data5,。。。第25列=数据25

实际上,这可能看起来像:

12:34:23,MyServerName,MyProcess,Type=10,Price=45.4,ProductType=AV

21:23:17,MyServerName2,MyProcess2,Type=10,ProductType=AV,ClassKey=2324


我有两个问题需要帮助解决。第一个是解析数据,使“Type=10”成为“Type”列标题,当我将其上载到MS SQL Server数据库时,该行采用值“10”。第二个问题是我的列在CSV中的位置不一致。听起来我必须创建一个键:值对数组,但我不确定如何做,或者这是否是最好的方法。有人能提供一些关于什么工具/方法最适合进行这项工作的见解吗?

不确定这是否有帮助,但是:

$data = @(
'12:34:23, MyServerName, MyProcess, Type=10, Price=45.4, ProductType=AV'
'21:23:17, MyServerName2, MyProcess2, Type=10, ProductType=AV, ClassKey=2324'
)

$data -replace '^([^,]+),([^,]+),([^,]+)','Timestamp=$1, ServerName=$2, ProcessName=$3' |
foreach {New-Object PSObject -Property (convertfrom-stringdata $_.replace(',',"`n"))}



Timestamp   : 12:34:23
ProcessName : MyProcess
ServerName  : MyServerName
Price       : 45.4
ProductType : AV
Type        : 10

Timestamp   : 21:23:17
ProcessName : MyProcess2
ClassKey    : 2324
ServerName  : MyServerName2
ProductType : AV
Type        : 10

前三列是否始终一致?可能有意思