首页 > 解决方案 > 获取内容拆分,但保留前导零并仅在 powershell 中按第一个“_”拆分

问题描述

我有一些这样的txt数据:

0.0.0.1_03_1          
0.0.0.1_03            
0.0.0.1_02_2_1_3_4          
0.0.0.1_02_1          
0.0.0.1_02            
0.0.0.1_01_1          
0.0.0.1_01  

我想要实现的是将两个变量(0.0.0.1 和其余变量)分开,我只想按第一个 '_' 分割并保持前导零(例如 01)我正在这样做:

Get-Content $SourceTxtDbFile | 
  ConvertFrom-String -Delimiter "_" -PropertyNames DbVersion, ScriptNumber

但结果既没有前导零,也没有按照我想要的方式分割线。

标签: powershelltext-parsing

解决方案


限制拆分的数量,.Split($separator, $count)然后制作自己的输出对象:

Get-Content D:\test.txt | ForEach-Object {

    $Left, $Right = $_.split('_', 2)

    [PsCustomObject]@{ 
        DbVersion    = $Left.Trim()
        ScriptNumber = $Right.Trim()
    } 
}

推荐阅读