Skip to content

Instantly share code, notes, and snippets.

@dotps1
Last active January 14, 2016 15:45
Show Gist options
  • Save dotps1/6ffd8fc9a62c2014d668 to your computer and use it in GitHub Desktop.
Save dotps1/6ffd8fc9a62c2014d668 to your computer and use it in GitHub Desktop.
<#
.SYNOPSIS
Displays matching PowerBall numbers from a Csv file.
.DESCRIPTION
Imports a csv file, with each number in it own column, then compares it to the PowerBall Numbers.
Outputs highlighted matching numbers in each row.
.INPUTS
System.String
.OUTPUTS
None.
.PARAMETER Path
The path to the Csv file.
.PARAMETER MatchingNumbers
An array of the matching numbers.
.PARAMETER PowerBall
The value of the PowerBall.
.EXAMPLE
.\Get-PowerBallMatches -Path .\MyNumbers.csv -MatchingNumbers 5,7,11,22,29 -PowerBall 10
.NOTES
This script will only work in the console for highlighted output.
.LINK
http://dotps1.github.io
#>
Param (
[Parameter(
Mandatory = $true,
Position = 0,
ValueFromPipeline = $True
)]
[String]
$Path,
[Parameter(
Mandatory = $true,
Position = 1
)]
[ValidateRange(1,70)]
[Int[]]
$MatchingNumbers,
[Parameter(
Mandatory = $true,
Position = 2
)]
[Int]
$PowerBall
)
Begin {
if ($MatchingNumbers.Count -ne 5) {
throw 'Please Scpecify 5 Numbers. Example 1,2,3,4,5.'
}
try {
$csv = Import-Csv -Path $Path -Header @(
'Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'PowerBall'
) -ErrorAction Stop
} catch {
Write-Error -Message "Failed to import csv: $Path."
return
}
try {
[Int]$csv[0].Number1 | Out-Null
} catch {
$csv = $csv | Select-Object -Skip 1
}
}
Process {
foreach ($row in $csv) {
if ($row.Number1 -in $MatchingNumbers -or $row.Number2 -in $MatchingNumbers -or $row.Number3 -in $MatchingNumbers -or $row.Number4 -in $MatchingNumbers -or $row.Number5 -in $MatchingNumbers -or $row.PowerBall -eq $PowerBall) {
if ($row.Number1 -in $MatchingNumbers) {
Write-Host -Object "$($row.Number1) " -ForegroundColor Yellow -NoNewline
} else {
Write-Host -Object "$($row.Number1) " -NoNewline
}
if ($row.Number2 -in $MatchingNumbers) {
Write-Host -Object "$($row.Number2) " -ForegroundColor Yellow -NoNewline
} else {
Write-Host -Object "$($row.Number2) " -NoNewline
}
if ($row.Number3 -in $MatchingNumbers) {
Write-Host -Object "$($row.Number3) " -ForegroundColor Yellow -NoNewline
} else {
Write-Host -Object "$($row.Number3) " -NoNewline
}
if ($row.Number4 -in $MatchingNumbers) {
Write-Host -Object "$($row.Number4) " -ForegroundColor Yellow -NoNewline
} else {
Write-Host -Object "$($row.Number4) " -NoNewline
}
if ($row.Number5 -in $MatchingNumbers) {
Write-Host -Object "$($row.Number5) " -ForegroundColor Yellow -NoNewline
} else {
Write-Host -Object "$($row.Number5) " -NoNewline
}
if ($row.PowerBall -eq $PowerBall) {
Write-Host -Object " $($row.PowerBall) " -ForegroundColor Yellow
} else {
Write-Host -Object " $($row.PowerBall) "
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment