December
18th,
2007
I like my scripts to be readable and terse. They’re scripts after all and I want to get the most done with the least amount of code. There’s a lot to be said for having a readable script but I only value that when I intend to keep the script around for awhile.
PowerShell does not have a ternary operator and that often frustrates me as I end up writing lots of verbose code.
Once again, fix it by introducing a small function into my profile. Not quite a true ternary operator because it evaluates both of the result arguments. But it does the trick for most situations.
function Get-Ternary()
{
param ( [bool]$condition = $(throw "Need a conditional"),
$valueTrue = $(throw "Need a value for the true condition"),
$valueFalse = $(throw "Need a value for the false condition") )
if ( $condition )
{
return $valueTrue
}
else
{
return $valueFalse
}
}
Now I can type
PS> Get-Ternary $cond 1 42