如何解决Powershell:在30天内获得价值
在一个文件中,我想做一个循环以获取每一行的值,该值是该行之前的行的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"
解决方法
假设“这条线”是最新的,再加上前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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。