在 PowerShell 脚本中选择行

在 PowerShell 脚本中选择行

我有代码:

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

我需要仅选择以a字符开头的行。此脚本不起作用,它不打印任何内容。我应该在此脚本中做哪些更改才能使其正常工作?

答案1

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

相关内容