有許多工具可以以表格格式輸出數據。一個這樣的例子是diskpart。刮掉一些無關的輸出,你會得到這樣的東西。有沒有辦法將文本表格轉換爲PowerShell對象
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 136 GB 0 B
Disk 1 Offline 136 GB 136 GB
Disk 2 Reserved 1027 MB 0 B *
Disk 3 Reserved 500 GB 0 B *
Disk 4 Reserved 500 GB 0 B *
Disk 5 Reserved 10 GB 0 B *
Disk 6 Reserved 13 GB 0 B *
Disk 7 Reserved 4102 MB 0 B *
Disk 8 Reserved 7169 MB 0 B *
Disk 9 Reserved 503 GB 0 B *
Disk 10 Reserved 506 GB 0 B *
Disk 11 Reserved 500 GB 0 B *
Disk 12 Reserved 3891 GB 0 B *
Disk 13 Reserved 500 GB 0 B *
Disk 14 Reserved 3891 GB 0 B *
Disk 15 Reserved 1843 GB 0 B
Disk 16 Reserved 3072 GB 0 B *
Disk 17 Reserved 2048 GB 0 B *
Disk 18 Reserved 808 GB 0 B *
Disk 19 Reserved 805 GB 0 B *
Disk 20 Reserved 3891 GB 0 B *
Disk 21 Reserved 3891 GB 0 B *
Disk 22 Reserved 3891 GB 0 B *
Disk 23 Reserved 6144 GB 0 B *
另一個例子是netstat的,它看起來像以下:
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 7ANDYS:0 LISTENING
TCP 0.0.0.0:135 7ANDYS:0 LISTENING
TCP 0.0.0.0:443 7ANDYS:0 LISTENING
TCP 0.0.0.0:445 7ANDYS:0 LISTENING
TCP 0.0.0.0:1025 7ANDYS:0 LISTENING
TCP 0.0.0.0:1026 7ANDYS:0 LISTENING
TCP 0.0.0.0:1027 7ANDYS:0 LISTENING
TCP 0.0.0.0:1028 7ANDYS:0 LISTENING
TCP 0.0.0.0:1029 7ANDYS:0 LISTENING
TCP 0.0.0.0:2048 7ANDYS:0 LISTENING
我試圖找出是否有這種類型的數據轉換爲對象相當重複的方式,使得該對象的屬性是第一行中的標題。我知道有很多方法可以爲使用正則表達式的單個工具的輸出執行此操作,但我正在尋找更多關於如何解決此問題的策略,而不是僅針對diskpart或netstat的一次性解決方案。
我試圖弄清楚如何在Poshcode上使用Lee Holmes的劇本,名字叫做Convert-TextToObject,但不知道從哪裏開始。
首先是推廣代碼以處理項目列表。鏈接中的代碼可用於生成每個對象(例如,每行運行一次,不包括標題)。然後它只是從標題行中提取'格式'。優化可以稍後進行。應該是一個有趣的小項目。 – 2011-04-21 18:27:44