2012-01-27 2 views
1

Во-первых, да, я noob для сценариев и powershell, так как это станет болезненно очевидным. В моих попытках узнать, я работал со сценарием здесь: http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/вывод коллекции с использованием powershell и htmlAgilityPack

Это то, что я до сих пор:

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 и т. д.

Любая помощь или объяснение будут оценены, поскольку у меня есть Googled, я скрестил глаза и не обязательно выдерживаю то, что я нахожу.

Спасибо!

+0

Я не знаю, есть ли какие-либо встроенные операторы для PowerShell, чтобы сделать это, но [ 'string.join()'] (http://msdn.microsoft.com/ ан-нас/библиотека/system.string.join.aspx). –

+0

Я пробовал варианты powershell -split и -join без каких-либо успехов – jsan

ответ

2

С помощью Powershell (get-help about_join):

Следующая диаграмма показывает синтаксис для оператора соединения.

<String[]> -Join <Delimiter> 

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

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

    $arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform} 
    
  2. Регистрация строки с помощью a запятая в качестве разделителя:

    $joinedstring = $arrayofstrings -join ", " 
    

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

+0

Я бы, вероятно, использовал '$ result | выберите -exp Платформа | sort'. – Joey

+0

Это сработало! Большое спасибо, Джон. Я ранее пробовал - присоединяюсь, я просто не использовал его правильно или в нужном месте. – jsan