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

如何在PowerShell的Out-GridView中实现文本自动换行?

解决Out-GridView中文本自动换行的问题

好问题!Out-GridView默认确实没有直接开启自动换行的设置,但我们可以通过预处理文本的方式,让长内容自动换行显示,不用再横向滚动查看。下面给你两种实用的解决方案:

方法1:预处理文本插入换行符

核心思路是在输出到Out-GridView之前,给长文本(比如你的description_text字段)按指定长度插入换行符,这样Out-GridView会自动识别并显示多行内容。

修改你的脚本如下:

# 原有的数据获取部分
Invoke-RestMethod -uri "https://clasd.freshdesk.com/api/v2/tickets?email=xyz@clasd.net" -Headers $FDHeaders -ContentType application/json -Method Get | 
    ConvertTo-Json | Out-File C:\csiu\test.txt

$file = "C:\csiu\test.txt"
$data = Get-Content $file -Raw | ConvertFrom-Json | Select-Object -Expand Value

# 处理长文本并输出到Out-GridView
$data | Select id, subject, 
    @{
        Name='description_text'; 
        Expression={
            # 每70个字符插入一个换行符,可根据你的窗口宽度调整数值
            [regex]::Replace($_.description_text, '.{70}', "$&`n")
        }
    } | 
Sort-Object ID | 
Out-GridView -Title "Freshdesk Tickets (自动换行版)"

优化版:保留原有换行的同时拆分长行

如果你的description_text本身已经有换行,上面的方法可能会破坏原有结构,改用下面的正则表达式,只会拆分连续的长文本段:

@{
    Name='description_text'; 
    Expression={
        # 仅对连续超过70个非换行字符的部分插入换行
        [regex]::Replace($_.description_text, '([^\n]{70})', '$1`n')
    }
}

方法2:调整Out-GridView列宽辅助

除了文本预处理,你还可以双击Out-GridView中列标题之间的分隔线,让列自动调整到内容的最大宽度。结合上面的文本换行,就能完美实现无需横向滚动查看全部内容的效果。

注意事项

Out-GridView基于.NET的DataGridView控件,本身默认是单行显示,所以必须通过插入换行符的方式强制多行显示,这是目前最可靠的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:54