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

如何用PowerShell读取大文本文件并提取ID、test、test1存入表格

用PowerShell提取文本文件中的ID、test、test1值并生成表格

当然没问题!用PowerShell完全可以搞定这个需求,我给你准备了两套实用脚本——分别对应单个内容块和多个内容块的场景,都能精准提取目标值并整理成结构化表格。

场景1:文件里只有一组ID、test、test1数据

如果你的文本文件里只有一个ID和对应的test、test1值,用下面的脚本就足够了:

# 替换成你的目标文本文件路径
$filePath = "C:\your\file\path\your-file.txt"

# 一次性读取整个文件内容(方便正则匹配)
$fileContent = Get-Content -Path $filePath -Raw

# 提取ID值
if ($fileContent -match 'ID\s*:\s*(\d+)') {
    $extractedID = $matches[1]
}

# 提取test和test1的数值
if ($fileContent -match 'Score test:\s*([\d.]+),\s*test1\s*:\s*([\d.]+)') {
    $testValue = [double]$matches[1]
    $test1Value = [double]$matches[2]
}

# 把提取到的数据整理成自定义对象
$resultObject = [PSCustomObject]@{
    ID    = $extractedID
    test  = $testValue
    test1 = $test1Value
}

# 输出美观的表格
$resultObject | Format-Table -AutoSize

脚本说明

  • Get-Content -Raw:一次性读取整个文件,避免逐行处理的麻烦,尤其适合匹配跨行内容(这里目标字段是单行,但Raw模式更省心)
  • 正则表达式:
    • ID\s*:\s*(\d+):匹配ID : 数字格式的内容,\s*用来忽略冒号前后的任意空格,(\d+)捕获ID的数字部分
    • Score test:\s*([\d.]+),\s*test1\s*:\s*([\d.]+):匹配test和test1的浮点数值,[\d.]+能匹配整数或小数
  • 转换成[double]:把提取到的字符串转成数值类型,方便后续做计算或排序;如果不需要数值类型,直接去掉这个转换即可
  • Format-Table -AutoSize:自动调整列宽,输出整齐的表格

场景2:文件里有多组ID、test、test1数据

如果你的文本文件里包含多个分隔线分隔的内容块(每个块都有自己的ID、test、test1),用下面的批量提取脚本:

$filePath = "C:\your\file\path\your-file.txt"
$fileContent = Get-Content -Path $filePath -Raw

# 用分隔线分割所有内容块,筛选出包含ID和test的有效块
$contentBlocks = $fileContent -split '----------------------------------------------------------------' | 
                 Where-Object { $_ -match 'ID\s*:' -and $_ -match 'test:\s*[\d.]+' }

# 遍历每个块,提取数据并收集结果
$allResults = foreach ($block in $contentBlocks) {
    # 提取当前块的ID
    if ($block -match 'ID\s*:\s*(\d+)') {
        $currentID = $matches[1]
    }
    # 提取当前块的test和test1值
    if ($block -match 'Score test:\s*([\d.]+),\s*test1\s*:\s*([\d.]+)') {
        $currentTest = [double]$matches[1]
        $currentTest1 = [double]$matches[2]
    }
    # 生成当前块的结果对象
    [PSCustomObject]@{
        ID    = $currentID
        test  = $currentTest
        test1 = $currentTest1
    }
}

# 输出所有结果的表格
$allResults | Format-Table -AutoSize

# 可选:把结果导出到CSV文件,方便用Excel等工具分析
# $allResults | Export-Csv -Path "C:\output\extracted-data.csv" -NoTypeInformation

脚本说明

  • -split '----------------------------------------------------------------':用文本里的分隔线把整个文件拆分成单个内容块
  • Where-Object:过滤掉空的或无效的块,只保留包含ID和test数据的块
  • 遍历每个块提取数据,最后把所有结果收集到数组里,输出成统一的表格
  • 导出CSV的功能可以把数据保存成结构化文件,方便后续处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:52:30