functions/Get-OrElse.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<#
.NOTES TBD .DESCRIPTION TBD .PARAMETER Value TBD .PARAMETER Default TBD .EXAMPLE Get-OrElse Example usage Get-OrElse #> function Get-OrElse { [CmdletBinding()] Param( [Parameter(ValueFromPipeline = $True)] [Object]$Value, [Parameter(Mandatory = $True)] [Object]$Default ) if($null -eq $Value){ return $Default } switch($Value.GetType().Name){ "String"{ if([string]::IsNullOrEmpty($Value)){ return $Default } else{ return $Value } } "Hashtable" { if($Value.count -eq 0){ return $Default } else{ return $Value } } "Object[]"{ if($Value.count -eq 0){ return $Default } else{ return $Value } } Default { return $Value } } } |