Premièrement, oui, je suis un spécialiste des scripts et de PowerShell, car cela deviendra douloureusement évident. Dans mes tentatives pour apprendre, j'ai travaillé avec un script d'ici: http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/
Voici ce que j'ai jusqu'ici:
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
Cela me donne les articles que je cherche.
* Le défi *
J'essaie d'obtenir cette sortie dans une variable sous forme de chaîne unique avec chaque élément suivi d'une virgule. pour Exemple Item1, Item2, Item 3 etc ...
Toute aide ou explication serait appréciée, car je me suis mis à chercher dans les yeux et je ne supporte pas nécessairement ce que je trouve.
Merci!
Depuis l’aide de powershell ( get-help about_join
):
Le diagramme suivant montre la syntaxe de l'opérateur de jointure.
<String[]> -Join <Delimiter>
Pour résoudre votre problème, vous devez:
Créez un tableau de chaînes contenant les chaînes que vous souhaitez rejoindre:
$arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform}
Joignez les chaînes en utilisant une virgule comme délimiteur:
$joinedstring = $arrayofstrings -join ", "
$joinedstring
contiendra Item1, Item2, Item3