为什么我会在以下几个方面得到新行:
[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前面的文档没有提到新行。我的循环不包含换行符指令。而且很明显它不在源数据中?
任何解释都将不胜感激。
发布于 2022-07-22 21:03:13
换行符是格式化工件,它们不是数组元素的一部分: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 Lanehttps://stackoverflow.com/questions/73085862
复制相似问题