вывод коллекции с использованием powershell и htmlAgilityPack - PullRequest
1 голос
/ 27 января 2012

Во-первых, да, я новичок в написании сценариев и 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 и т.д ...

Буду признателен за любую помощь или объяснение, так как я погуглил себе глаза и не обязательно переношу то, что нахожу.

Спасибо!

1 Ответ

2 голосов
/ 28 января 2012

Из справки powershell (get-help about_join):

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

<String[]> -Join <Delimiter>

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

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

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

    $joinedstring = $arrayofstrings -join ", "
    

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...