foreach数组字符串中的换行符-Powershell



为什么我在以下内容中得到换行符:

[string[]]$lines= "001 AALTON, Alan .....25 Every Street","002 BROWN, James .... 101 Browns Road","008 FLANAGAN, Lesley .... 1 Lovers Lane"
foreach ($line in $lines) {
    $line
}

输出:

001 AALTON, Alan .....25 Every Street
002 BROWN, James .... 101 Browns Road
008 FLANAGAN, Lesley .... 1 Lovers Lane

foreach文档没有提到换行符。我的循环不包含换行指令。它显然不在源数据中?

如有任何解释,不胜感激。

换行符是格式化工件,它们不是数组元素的一部分:PowerShell的输出格式化系统在自己的行上呈现字符串/基元类型集合的每个元素,这同样适用于将这些类型的实例逐个输出到成功输出流,这就是foreach语句的作用。

举一个简单的例子:'foo', 'bar''foo'; 'bar'foreach ($s in 'foo', 'bar') { $s }都产生相同的输出:

foo
bar

如果您需要不同的表示形式,请自己创建所需格式的字符串;例如:

PS> $lines -join ', '
001 AALTON, Alan .....25 Every Street, 002 BROWN, James .... 101 Browns Road, 008 FLANAGAN, Lesley .... 1 Lovers Lane

最新更新