output di una raccolta che utilizza powershell e htmlAgilityPack

html-agility-pack powershell powershell-v2.0

Domanda

In primo luogo, sì, sono un noob di scripting e powershell che diventerà dolorosamente ovvio. Nei miei tentativi di imparare, ho lavorato con uno script da qui: http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/

Questo è quello che ho finora:

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

Questo mi dà gli oggetti che sto cercando.

* La sfida *

Sto cercando di ottenere quell'output in una variabile come una singola stringa con ogni elemento seguito da una virgola. per esempio Item1, Item2, Item 3 ecc ...

Qualsiasi aiuto o spiegazione sarebbe apprezzato dal fatto che mi sono ritrovato su Google con gli occhi strabici e non necessariamente le cose che sto trovando.

Grazie!

Risposta accettata

Dall'aiuto di powershell ( get-help about_join ):

Il seguente diagramma mostra la sintassi per l'operatore di join.

<String[]> -Join <Delimiter>

Per risolvere il tuo problema, devi:

  1. Crea una serie di stringhe contenenti le stringhe a cui vuoi unirti:

    <String[]> -Join <Delimiter>
    
  2. Unisci le stringhe usando una virgola come delimitatore:

    <String[]> -Join <Delimiter>
    

$joinedstring conterrà Item1, Item2, Item3




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché