Используйте [scriptblock], imho, это намного проще, чем использовать функции здесь. Вот почему были изобретены скриптовые блоки.
function ForAll([scriptblock]$predicate) {
BEGIN {
$allTrue = $true
}
PROCESS {
if (!(& $predicate $_)) { $allTrue = $false }
}
END {
$allTrue
}
}
$aList = (0..4)
$bList = (1..4)
$aList | ForAll {$args[0] -le -10 } # returns false
$bList | ForAll {$args[0] -le 10 } # returns true
$ args [0] обозначает первый аргумент, переданный блоку сценария - в данном случае это $ _.