1

У меня есть код:

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

и мне нужно выбрать только те строки , которые начинаются с символа. Этот скрипт не работает, он ничего не печатает. Что я должен изменить в этом скрипте, чтобы он работал?

1 ответ1

2

Ваш $dir представляет собой одну строку с символами новой строки внутри, поэтому foreach запускается только один раз в вашем примере (вы напечатаете всю строку, если измените условие на if ($_.startswith("c")) .

Вам нужно разделить переменную $dir , например:

$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
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .