使用powershell和htmlAgilityPack輸出集合

html-agility-pack powershell powershell-v2.0

首先,是的,我是腳本和PowerShell的菜鳥,因為這將變得非常明顯。在我學習的過程中,我一直在使用這裡的腳本: http//www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/

這是我到目前為止:

add-type -Path 'C:\Program Files (x86)\htmlAgilityPack\HtmlAgilityPack.dll'
$doc = New-Object HtmlAgilityPack.HtmlDocument 
$result = $doc.Load("C:\scipts\test.html") 
$texts = $doc.DocumentNode.SelectNodes("//table[@class='dataTable']/tbody/tr/td[1]/a[1]") 
$result = $texts | % {
$testText = $_
$Platform = $testtext.innertext
New-Object PsObject -Property @{ Platform = $Platform} | Select Platform 
}
$result | Sort Platform | out-string

這給了我正在尋找的物品。

*挑戰*

我試圖將該輸出作為單個字符串變為一個變量,每個項目後跟一個逗號。例如Item1,Item2,Item 3等......

任何幫助或解釋都會受到讚賞,因為我用谷歌搜索自己的眼睛,並不一定站在我找到的東西。

謝謝!

一般承認的答案

來自powershell幫助( get-help about_join ):

下圖顯示了join運算符的語法。

<String[]> -Join <Delimiter>

要解決您的問題,您需要:

  1. 創建一個包含要加入的字符串的字符串數組:

    $arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform}
    
  2. 使用逗號作為分隔符加入字符串:

    $joinedstring = $arrayofstrings -join ", "
    

$joinedstring將包含Item1, Item2, Item3




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因