Powershell Split函数已损坏

xriantvc  于 2023-04-12  发布在  Shell
关注(0)|答案(1)|浏览(125)

我试图从这个文件中获取-〉
文件1:

Datum;Zeit;mp380_rdh_f2_o;mp383_rlf_f2_o;mp363_rdh_f3;mp362_rlf_f3;mp604_rdh_sitz;mp607_rdh_sitz;mp611_rlf_sitz;mp_358_1_rdl;mp_359_1_rdl;MP520_620_rdl;plf_dichtfl
10_03_2023;08_22_59;0.222;0.231;0.235;0.581;0.266;0.000;0.000;8.937;0.000

文件2:

Datum;10_03_2023
Zeit;08_22_59
mp380_rdh_f2_o;0.222
mp383_rlf_f2_o;0.231
mp363_rdh_f3;0.231
mp362_rlf_f3;0.235
mp604_rdh_sitz;0.581
mp607_rdh_sitz;0.266
mp611_rlf_sitz;0.000
mp_358_1_rdl;0.000
mp_359_1_rdl;8.937
MP520_620_rdl;0.000
plf_dichtfl

我尝试将前一个文件转换为新文件,但ValueSplit不起作用。我得到ValueLine的第一个数组,但它不添加ValueLine的其余部分。
验证码:

$file = Get-Content $SeeFile1

        $SplitCounter = 0

        $HeaderLine = $file[0]
        $HeaderSplit = $HeaderLine -split ";"
        $LengthSplit = $HeaderSplit.Length

        for ($i3 = 1; $i3 -le $LengthSplit; $i3++) {

            $TempCMD = "$" + "file[" + $i3 + "]"
            $ValueLine = $TempCMD | iex
            $ValueSplit = $ValueSplit -split ";"

            $Var1 = $HeaderSplit[$SplitCounter]
            $Var2 = $ValueSplit[$SplitCounter]

            $MergedLine = "$Var1"+ ";" + "$Var2"
            $MergedLine | Out-File -FilePath $MainFile -Append

            $SplitCounter++

        }

下面是$MainFile的输出:

Datum;10_03_2023

Zeit;

mp380_rdh_f2_o;

mp383_rlf_f2_o;

mp363_rdh_f3;

mp362_rlf_f3;

mp604_rdh_sitz;

mp607_rdh_sitz;

mp611_rlf_sitz;

mp_358_1_rdl;

mp_359_1_rdl;

MP520_620_rdl;

plf_dichtfl;

现在你只能在第一行看到$Var2,而另一个$Var2变量没有在那里实现。我该如何解决这个问题?
经过长时间的研究,我认为ValueSplit不能正常工作。我需要另一种解决方案来获得结果,但现在我不知道该怎么办。

bxgwgixi

bxgwgixi1#

看起来可以通过使用Import-Csv和然后用分号连接所有属性名称及其相应的属性值来简化:

Import-Csv path\to\input.csv -Delimiter ';' | ForEach-Object {
    foreach($prop in $_.PSObject.Properties) {
        $prop.Name, $prop.Value -join ';'
    }
} | Set-Content path\to\output.txt

相关问题