【发布时间】:2020-09-28 21:52:53
【问题描述】:
在一个文件中,我想做一个循环来为每一行获取该行之前的行的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"
【问题讨论】:
-
我认为您正在寻找类似
For($i=0;$i -lt 30;$i++){$Last30=$BL[$i..($i+29)] | Measure-Object Total -Sum | % Sum; Write-Host "Day $($i+1) : $Last30"} -
你为什么要抢最后 60 个?
-
因为“第 30 天”= 第 30 天到第 59 天值之和的值......“第 1 天”= 第 01 天到第 29 天之和的值
标签: powershell foreach