Powershell pitfalls
1 2 3 | function T ($b){Write-Host "[$b]"; return $b} if( T($true) -and T($true)){1}else{0} |
I would expect the above to return
1 2 3 | [True] [True] 1 |
but no. Instead
1 2 | [True] 1 |
is returned.
Why?
It’s because a method call in an if statement has to be surrounded with paranthesises like so:
1 | if( ( T($true)) -and (T($true)) ){1}else{0} |
Now the output is
1 2 3 | [True] [True] 1 |
Tags: Caveat, Powershell