вывод коллекции с использованием powershell и htmlAgilityPack

html-agility-pack powershell powershell-v2.0

Вопрос

Во-первых, да, я noob для сценариев и 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 ):

На следующей диаграмме показан синтаксис для оператора объединения.

<String[]> -Join <Delimiter>

Чтобы решить вашу проблему, вам необходимо:

  1. Создайте массив строк, содержащих строки, к которым вы хотите присоединиться:

    $arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform}
    
  2. Присоедините строки, используя запятую в качестве разделителя:

    $joinedstring = $arrayofstrings -join ", "
    

$joinedstring будет содержать Item1, Item2, Item3



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow