Get-ValueOrDefault.ps1
<# .SYNOPSIS Returns the value that was passed in, or, if that value was null, blank, zero or empty, returns the specified default value .EXAMPLE ('A' | ?? B) -eq "A" # returns True .EXAMPLE ('' | ?? C) -eq 'C' # returns True .EXAMPLE ($null | ?? D) -eq 'D' # returns True .EXAMPLE (1 | ?? 2) -eq 1 # returns True .EXAMPLE (0 | ?? 3) -eq 3 # returns True .EXAMPLE ('A' -as [int] | ?? E) -eq 'E' # returns True .EXAMPLE ($false | ?? F) -eq 'F' # returns True .EXAMPLE ($true | ?? G) -eq $true # returns True #> function Get-ValueOrDefault { [Alias('OrOtherwise', '??')] param ( [Parameter(ValueFromPipeline)] $Value, [Parameter(Position = 1)] $DefaultValue ) if ($Value) { $Value } else { $DefaultValue } } |