You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell5.1/Azure DevOps Server2019表格末列标题异常换行问题

问题触发原因

这个异常换行和Azure DevOps日志展示区域宽度没有关系,是PowerShell 5.1版本自带的表格格式化机制bug,触发逻辑如下:

  • 你使用Invoke-Sqlcmd -OutputAs DataTables返回的是标准.NET DataTable类型对象,PowerShell 5.1默认会调用Format-Table把这类对象转换成纯文本表格输出到日志流里。
  • 这个版本的Format-Table在计算列宽、渲染表头时存在已知缺陷:如果表格最后一列的任意单元格内容包含换行符(你的Result列存储的SQL返回结果本身带多行文本,就符合这个触发条件),格式化逻辑会错误地给最后一列的列标题尾部插入硬换行符,哪怕当前输出行的剩余宽度完全足够放下完整的列标题文本。
  • 这个问题和Azure DevOps的日志渲染逻辑无关,你把同样的DataTable对象放到本地PowerShell 5.1控制台直接输出,或者重定向到本地文本文件查看,一样能看到最后一列的“Result”标题被异常换行。

你可以在本地PowerShell 5.1环境运行以下代码直接复现该问题:

$testDt = New-Object System.Data.DataTable
$testDt.Columns.Add("ID", [int])
$testDt.Columns.Add("Result", [string])
$newRow = $testDt.NewRow()
$newRow.ID = 1
$newRow.Result = "第一行内容`n第二行内容"
$testDt.Rows.Add($newRow)
$testDt | Format-Table

这个缺陷在后续的PowerShell 7+版本中已经被修复,不会再出现同类表头异常换行的问题。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:21:40