I am seeing some rather weird behavior with PowerShell, it looks like custom functions might need a \"parenthesis wrapper\" to evaluate as you might expect them. Given a simple
If you use PowerShell V2's editor, you would see that -eq in the first example is blue, because it is an argument and -eq in the second example is gray because it is an operator
Also in V2, you can be strict about arguments, with CmdletBinding and param
function Return-True
{
[CmdletBinding()]
param()
return $true
}
Return-True -eq $false
Return-True -eq $false
Return-True : A parameter cannot be found that matches parameter name 'eq'.
At line:7 char:16
+ Return-True -eq <<<< $false
+ CategoryInfo : InvalidArgument: (:) [Return-True], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Return-True