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

如何使用PowerShell嵌套数组在Out-GridView中拆分日志字段为单独单元格?

拆分日志为多列显示在Out-GridView

你可以通过将整行日志拆分为结构化数据(自定义对象),让Out-GridView自动将版本、描述、日期显示在独立单元格中。以下是两种可行方案:

方案一:正则表达式拆分(适配多空格分隔)

适合日志条目用多个空格分隔字段的情况,无需依赖固定宽度:

# 原始日志数组
$pro_arry = @(
    "V 1.0      Initial Release          7 July 2022",
    "V 1.1      Optimized Update functionality and added logging         9 July 2022"
)

# 转换为结构化对象
$structuredLogs = $pro_arry | ForEach-Object {
    # 正则匹配提取版本、描述、日期
    if ($_ -match '^(\S+\s+\S+)\s+(.+?)\s+(\d+\s+\w+\s+\d+)$') {
        [PSCustomObject]@{
            版本 = $matches[1].Trim()
            描述 = $matches[2].Trim()
            日期 = $matches[3].Trim()
        }
    }
}

# 分栏显示
$structuredLogs | Out-GridView -Title "应用版本日志"

方案二:固定位置截取(适配固定宽度格式)

如果日志是固定宽度排版,可以直接按字符位置拆分,效率更高:

# 原始日志数组
$pro_arry = @(
    "V 1.0      Initial Release          7 July 2022",
    "V 1.1      Optimized Update functionality and added logging         9 July 2022"
)

# 按固定宽度截取字段
$structuredLogs = $pro_arry | ForEach-Object {
    [PSCustomObject]@{
        版本 = $_.Substring(0, 10).Trim()  # 前10字符为版本
        描述 = $_.Substring(10, 40).Trim() # 中间40字符为描述
        日期 = $_.Substring(50).Trim()     # 剩余字符为日期
    }
}

# 分栏显示
$structuredLogs | Out-GridView -Title "应用版本日志"

补充说明

  • 自定义对象的每个属性会被Out-GridView识别为独立列,完美实现“独立单元格”的需求;
  • 若你坚持要用嵌套数组,可先将每个条目拆分为@(版本, 描述, 日期)的数组,再通过手动构造对象转成结构化数据,但自定义对象是最简便的实现方式。

内容的提问来源于stack exchange,提问作者I am Jakoby

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:16:29