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

如何在PowerShell中使用特殊分隔符¢读取.dat文件内容

解决PowerShell用¢分隔符拆分文件内容并生成自定义对象的问题

问题说明

尝试用ConvertFrom-String -Delimiter '¢'读取以¢为分隔符的文本文件时无法正常拆分内容,但换用#作为分隔符可以正常工作,需要将文件每行内容转换为带有p1、p2、p3属性的自定义对象(如@{p1=Apple; p2=Banana; p3=cherry})。

可靠解决方案

推荐使用-split运算符手动拆分内容并创建自定义对象,该方法对特殊字符的处理更稳定,避免ConvertFrom-String的兼容性问题:

$path = "c:\data\test.dat"
Get-Content -Path $path | ForEach-Object {
    # 将每行按¢拆分,限制为3个部分(匹配需求的p1/p2/p3)
    $segments = $_ -split '¢', 3
    # 创建带指定属性的自定义对象
    [PSCustomObject]@{
        p1 = $segments[0].Trim()
        p2 = $segments[1].Trim()
        p3 = $segments[2].Trim()
    }
}

方案说明

  1. -split '¢', 3:指定¢为分隔符,限制拆分次数为3,确保即使行内有多余分隔符也只会生成3个片段,适配需求的三个属性。
  2. Trim():可选操作,用于去除每个片段前后可能存在的空白字符。
  3. [PSCustomObject]:直接生成标准PowerShell自定义对象,后续可方便地进行筛选、导出等操作。

为什么ConvertFrom-String失效?

ConvertFrom-String的-Delimiter参数对部分非ASCII特殊字符(如¢)的处理存在兼容性问题,尤其是当文件编码与PowerShell当前会话编码不一致时,容易出现匹配失败的情况。而-split运算符直接基于字符串字符进行拆分,稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:27:38