为何PowerShell 5.1语句输出会分为两行?
PowerShell 5.1中Write-Output语句生成两行输出的原因分析
你执行的Write-Output ($results | Measure-Object).Count ' rows returned'之所以会生成两行输出,核心原因是Write-Output支持接收多个位置参数,每个参数会被当作独立的输出对象处理:
- 第一个参数是
($results | Measure-Object).Count的计算结果(也就是你看到的11) - 第二个参数是字符串
' rows returned'
PowerShell会将这两个独立对象分别输出,自然就分成了两行。
要让内容在同一行输出,有两种常用解决方式:
- 字符串拼接后输出:把数值和字符串合并成一个完整字符串再传给Write-Output
或者用运算符拼接:Write-Output "$($($results | Measure-Object).Count) rows returned"Write-Output ($($results | Measure-Object).Count + ' rows returned') - 使用Write-Host(仅控制台显示场景):如果只是要在控制台打印内容,不需要将输出传入后续管道,用Write-Host可以直接输出拼接后的内容:
Write-Host "$($($results | Measure-Object).Count) rows returned"
内容的提问来源于stack exchange,提问作者Rod
相关产品推荐
相关产品推荐

