-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathInvoke-CoinToss.ps1
More file actions
36 lines (31 loc) · 864 Bytes
/
Invoke-CoinToss.ps1
File metadata and controls
36 lines (31 loc) · 864 Bytes
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
Function Invoke-CoinToss {
[cmdletbinding(DefaultParameterSetName="_AllParameterSets")]
Param(
[Parameter(ParameterSetName="Boolean")]
[switch]$AsBoolean,
[Parameter(ParameterSetName="EvenOdd")]
[switch]$EvenOdd
)
Write-Verbose "Using parameter set $($PSCmdlet.ParameterSetName)"
#get a random number between 1 and 100 to test
$i = Get-Random -Minimum 1 -Maximum 100
Write-Verbose "Random result = $i"
#use the modulo operator
if ($i%2) {
Write-Verbose "Odd/Heads/True"
Switch ($PSCmdlet.ParameterSetName) {
"Boolean" { $True}
"EvenOdd" {"Odd" }
Default {"Heads"}
} #switch
} #if
else {
Write-Verbose "Even/Tails/False"
Switch ($PSCmdlet.ParameterSetName) {
"Boolean" { $False}
"EvenOdd" {"Even" }
Default {"Tails"}
} #switch
} #else
} #end Invoke-CoinToss
Set-Alias -Name Flip-Coin -Value Invoke-CoinToss