为什么我在以下内容中得到换行符:
[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