0

在一个文件中,我想做一个循环来为每一行获取该行之前的29个值的累积值+当前行的值,但我转圈,我没有得到预期的结果。你能帮我吗?

$DesktopPath = [Environment]::GetFolderPath("Desktop")
$BLFiles="$DesktopPath\BL.csv" $BL= Import-csv $BLFiles -delimiter ";" -encoding UTF8 | select-object -Last 60
 
$BL30J=0 $day=0
 
foreach ($value in $BL) {
    $day+=1
    if ($day -le 30) {
        $BL30J+=$value."Total" 
        write-host "Day $day : $BL30J" 
    }
}

BL.csv 的内容:

"line";"Total"
"01";"01"
"02";"01"
[...]
"60";"01"
4

1 回答 1

1

假设“这条线”是最新的,再加上之前的 29 条,您可以简单地执行此操作以获得总数。

Import-Csv $tempfile -Delimiter ';' -Encoding utf8 |
    Select-Object -last 30 -ExpandProperty total |
        Measure-Object -Sum | Select-Object -ExpandProperty sum

或者如果你喜欢速记

((Import-Csv $tempfile -Delimiter ';' -Encoding utf8 | Select -last 30).total | Measure -Sum).sum
于 2020-09-29T02:43:12.033 回答