powershell组度量对象中的条件条件?
我有以下形状的数据:powershell组度量对象中的条件条件?,powershell,grouping,Powershell,Grouping,我有以下形状的数据: externalName,day,workingHours,hoursAndMinutes PRJF,1,11,11:00 PRJF,2,11,11:00 PRJF,3,0,0:00 PRJF,4,0,0:00 CFAW,1,11,11:00 CFAW,2,11,11:00 CFAW,3,11,11:00 CFAW,4,11,11:00 CFAW,5,0,0:00 CFAW,6,0,0:00 到目前为止,代码是 $gdata = Import-csv $filepath\
externalName,day,workingHours,hoursAndMinutes
PRJF,1,11,11:00
PRJF,2,11,11:00
PRJF,3,0,0:00
PRJF,4,0,0:00
CFAW,1,11,11:00
CFAW,2,11,11:00
CFAW,3,11,11:00
CFAW,4,11,11:00
CFAW,5,0,0:00
CFAW,6,0,0:00
到目前为止,代码是
$gdata = Import-csv $filepath\$filename | Group-Object -Property Externalname;
$test = @()
$test += foreach($rostername in $gdata) {
$rostername.Group | Select -Unique externalName,
@{Name = 'AllDays';Expression = {(($rostername.Group) | measure -Property day).count}},
}
$test;
我不能解决的是如何对天不为零的行进行有条件计数。
目的是生产两条生产线:
PRJF, 4, 2, 11
CFAW, 6, 4, 11
i、 e.花名册名称、花名册长度、工作日数、平均每天工作小时数。- 您需要一个where对象来过滤非零工作时间
- 我将使用
生成一个新表[PSCustomObject]
## Q:\Test\2018\08\06\SO_51700660.ps1
$filepath = 'Q:\Test\2018\08\06'
$filename = 'SO_S1700660.csv'
$gdata = Import-Csv (Join-Path $filepath $filename) | Group-Object -Property Externalname
$test = ForEach($Roster in $gdata) {
$WH = ($Roster.Group.Workinghours|Where-Object {$_ -ne 0}|Measure-Object -Ave -Sum)
[PSCustomObject]@{
RosterName = $Roster.Name
RosterLength = $Roster.Count
DaysOn = $WH.count
AvgHours = $WH.Average
TotalHours = $WH.Sum
}
}
$test | Format-Table
样本输出:
> .\SO_51700660.ps1
RosterName RosterLength DaysOn AvgHours TotalHours
---------- ------------ ------ -------- ----------
PRJF 4 2 11 22
CFAW 6 4 11 44