我试图从这个文件中获取-〉
文件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不能正常工作。我需要另一种解决方案来获得结果,但现在我不知道该怎么办。
1条答案
按热度按时间bxgwgixi1#
看起来可以通过使用
Import-Csv
和然后用分号连接所有属性名称及其相应的属性值来简化: