Selecionando linhas no script do PowerShell

1

Eu tenho código:

$dir=(new-object Net.WebClient).DownloadString("http://www.nbp.pl/kursy/xml/dir.txt")
$dir | foreach {
    if ($_.startswith("a"))
    {
        write-host $_
    }
}

e preciso selecionar apenas as linhas que começam com a character. Este script não está funcionando, não imprime nada. O que devo alterar neste script para que funcione?

    
por pbies 03.12.2016 / 23:23

1 resposta

2

Seu $dir é uma única string com caracteres de nova linha, portanto foreach é executado apenas uma vez em seu exemplo (você imprimirá a string inteira se alterar a condição para if ($_.startswith("c")) .

Você precisa dividir a variável $dir , por exemplo, com:

$dir=(new-object Net.WebClient).DownloadString("http://www.nbp.pl/kursy/xml/dir.txt")
foreach ($singleEntry in $dir -split '\r\n') {
    if ($singleEntry.startswith("a"))
    {
        write-host $singleEntry
    }
}
    
por 03.12.2016 / 23:40