使用PowerShell将特定格式文本文件转换为CSV格式求助
PowerShell 文本转 CSV 解决方案
下面是针对需求的PowerShell脚本,可将指定格式的文本文件转换成符合要求的CSV:
# 读取文本文件内容,按空行分割成独立数据组 $content = Get-Content -Path "你的输入文件路径.txt" -Raw $groups = $content -split '(?m)^\s*$' | Where-Object { $_ -match '\S' } # 初始化结果数组 $results = @() # 遍历每个数据组,解析为结构化对象 foreach ($group in $groups) { $item = [PSCustomObject]@{ Quantity = ($group -split 'Quantity: ')[1] -split "`n" | Select-Object -First 1 | ForEach-Object { $_.Trim() } Manufacturer = ($group -split 'Manufacturer: ')[1] -split "`n" | Select-Object -First 1 | ForEach-Object { $_.Trim() } 'License metric' = ($group -split 'License metric: ')[1] -split "`n" | Select-Object -First 1 | ForEach-Object { $_.Trim() } Expiry = ($group -split 'Expiry: ')[1] -split "`n" | Select-Object -First 1 | ForEach-Object { $_.Trim() } } $results += $item } # 导出为CSV文件 $results | Export-Csv -Path "输出文件路径.csv" -NoTypeInformation -Encoding UTF8
脚本说明
- 读取与分割数据:
Get-Content -Raw一次性读取整个文件内容,通过正则表达式分割符(?m)^\s*$按空行拆分数据组,再过滤掉无内容的空组。 - 字段解析:针对每个数据组,按字段名分割提取对应值,用
Trim()去除多余空格,封装为PSCustomObject保证结构规整。 - CSV导出:
Export-Csv将结构化对象导出为CSV,-NoTypeInformation移除PowerShell默认的类型注释,-Encoding UTF8确保跨平台兼容性。
使用提示
替换脚本中的你的输入文件路径.txt和输出文件路径.csv为实际文件路径即可执行。即使文本内字段顺序发生变化,脚本仍能按字段名正确提取数据。
内容的提问来源于stack exchange,提问作者Venkatesh
相关产品推荐
相关产品推荐

