Я пытаюсь поставить эту функцию:
function Test-Any {
[CmdletBinding()]
param($EvaluateCondition,
[Parameter(ValueFromPipeline = $true)] $ObjectToTest)
begin {
$any = $false
}
process {
if (-not $any -and (& $EvaluateCondition $ObjectToTest)) {
$any = $true
}
}
end {
$any
}
}
в модуль. Я только что создал новый модуль, файл my-scripts.psm1, который содержит только указанную выше функцию, и импортирую его с помощью Import-Module <absolute path>
.
Проблема в том, что если я использую функцию из модуля, 1..4 | Test-Any { $_ -gt 3 }
возвращает false, потому что для $_
не задано значение из канала.
Если я обычно определяю функцию в сценарии и использую ее оттуда, она работает должным образом (при этом $ _ получает целочисленные значения).
Это происходит с PowerShell v4.0 под Windows 7.