salida de una colección usando powershell y htmlAgilityPack

html-agility-pack powershell powershell-v2.0

Pregunta

Primero, sí, soy un noob al scripting y powershell, ya que se volverá dolorosamente obvio. En mis intentos de aprender, he estado trabajando con un script desde aquí: http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/

Esto es lo que tengo hasta ahora:

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

Esto me da los artículos que estoy buscando.

* El reto *

Estoy tratando de convertir esa salida en una variable como una sola cadena con cada elemento seguido de una coma. para el Ejemplo Item1, Item2, Item 3 etc ...

Cualquier ayuda o explicación sería apreciada, ya que me he buscado en Google y no necesariamente tengo que soportar las cosas que estoy encontrando.

¡Gracias!

Respuesta aceptada

Desde la ayuda de powershell ( get-help about_join ):

El siguiente diagrama muestra la sintaxis del operador de unión.

<String[]> -Join <Delimiter>

Para resolver su problema, necesita:

  1. Cree una matriz de cadenas que contenga las cadenas a las que desea unirse:

    $arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform}
    
  2. Unir las cadenas con una coma como delimitador:

    $joinedstring = $arrayofstrings -join ", "
    

$joinedstring contendrá Item1, Item2, Item3



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué