Skip to content

Instantly share code, notes, and snippets.

@Packet-Lost
Last active January 18, 2020 18:29
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
A function that displays errors during validated parameter type changes
function Show-ThisPsOddity {
param(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][ValidateSet("foo", "bar", "baz", "match")][String]$UserInput,
[ValidateRange(1,2)][int]$Variant = 1
)
switch($variant) {
1 { if($UserInput -eq "match"){ $UserInput = @("foo", "bar", "baz") } }
2 { if($UserInput -eq "match"){ [array]$UserInput = "foo", "bar", "baz" } }
}
"Before the loop `$UserInput is $UserInput of type $(if($UserInput -is [array]){$UserInput.GetType().BaseType}else{$UserInput.GetType()})"
foreach($item in $UserInput) { "In the loop `$item is $item of type $(if($item -is [array]){$item.GetType().BaseType}else{$item.GetType()})" }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment