假设我有一些powershell代码:
function count-pipe {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline=$true)]
[object[]]$inputObject
)
process {
$PipeCount = <# How to get count of the pipe? Expect: #> 5
Write-Output $inputObject # path-throw
}
}
1..5 | count-pipe | % { $_ }
是的,我可以计算/测量计数到temp-variable并使用tee cmdlet。我认为这个解决方案可以暂停管道。我认为临时性并不是一个与内存消耗相关的好解决方案。
我可以在不累积到临时变量的情况下获取管道对象数吗?
感谢。
答案 0 :(得分:3)
我认为使用计数器变量是我将使用的解决方案:
function count-pipe {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline=$true)]
[object[]]$InputObject
)
Process {
$PipeCount++
$_
}
End {
Write-Verbose $PipeCount
}
}
'a','b' | count-pipe -verbose | % { $_ }
答案 1 :(得分:1)
Powershell:
StatefulBuilder(builder: (context, setState) {
return DropdownButton<String>(
isExpanded: true,
value: item,
hint: Text(
'Select an item',
),
onChanged: (newValue) => {
setState(() {
item = newValue;
})
},
items: ['A', 'B', 'c'].map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
);
}),
输出:
@(1,2,3) | Measure-Object
Powershell:
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
输出:
1..5 | Measure-Object -AllStats
Powershell:
Count : 5
Average : 3
Sum : 15
Maximum : 5
Minimum : 1
StandardDeviation : 1.58113883008419
Property :