PowerShell中foreach遍历数组字符串为何自动产生换行?
PowerShell遍历数组自动换行的原因
这并不是foreach循环的特性,而是PowerShell默认的输出行为导致的:
- 你的
foreach循环只是将数组中的每个字符串元素依次送入PowerShell的输出流,本身并没有添加换行的逻辑。 - 当输出流中的对象被渲染到控制台时,PowerShell的默认输出格式化器会对每个独立对象进行处理。对于字符串类型的对象,格式化规则就是为每个字符串单独输出一行,自动添加换行符。
举个简单的验证例子,直接输出字符串数组,不需要foreach也会得到同样的换行结果:
"第一行", "第二行", "第三行"
如果想要避免自动换行,可以使用Write-Host配合-NoNewline参数,或者先拼接字符串再输出:
foreach ($line in $lines) { Write-Host $line -NoNewline }
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

