我有一個通用的文本,而不是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