我有一个通用的文本,而不是PSCustom,不是CSV,不是JSON但有一些结构如何将纯文本转换成结构化的PowerShell对象
Field1:ABC Field2: DEF Field1:HKA Field3:YZ Field1:123 Field2:234 Field4:876 Field5:XUZ
显然,文本是一个多条记录与领域,缺少的字段,每个记录用CR-LF分隔。
是否有一种有效的方法来解析字符串,并只提取Field1
和Field2
超出记录并将结果放入JSON中?
我试图把字符串转换成所谓$s
然后
$s | select -ExpandProperty Field1,Field2
一个字符串变量,但我得到这个错误
选择-对象:无法将“System.Object的[]”的类型'参数'ExpandProperty'所需的'System.String'。指定的方法不受支持。
如果我试图
$s | select -ExpandProperty Field1
然后我得到的错误说Field1
不是一个性质。
我想我有点理解错误,但不知道如何解决它。我想我必须以某种方式将文本转换为结构化表格,然后将其解压缩。但我该怎么做?
你试图扩大在字符串中的“财产”。这不起作用。您必须创建一个PSCustom对象并将这些值放入该对象中,然后才能在管道中使用它并以这种方式展开属性。我能想到的解决方案是将字符串拆分成一个新行,并使用foreach循环创建自定义对象。 –
我也注意到你有多域field1和2's等等......这个样本是否正确? – ArcSet
@ArcSet:是的。 “纯文本”实际上不是纯文本,而是结构化的文本。它们是带有field1,field2,...,fieldn的记录。有些字段因为有价值而显示,有些字段因为空白而显示。但我只对特定的领域感兴趣,比如说field1和field2。如果它们是空白的,那么我会在价值中留下空间。 – user1205746