For the longest time, I've been using a visual basic trick to determine if a variable is a numeric value.
So, now in my code instead of evaluating the variable if it's a numeric value, then run through a "if numeric then ____ else _____". Now I simply encapsulate my THEN _ ELSE _ portions into my Try _ Catch _.
[reflection.assembly]::LoadWithPartialName("'Microsoft.VisualBasic") function isNumeric([string] $a) { $b = ([Microsoft.VisualBasic.Information]::isnumeric($a)) return $b } IsNumeric "12" $True IsNumeric "Bob" $FalseLooking at the code, all I am doing is type-casting the variable as a integer and seeing if I get an error. So I could simply.
Try { [Int]$Variable -is [Int] } Catch { $false }
So, now in my code instead of evaluating the variable if it's a numeric value, then run through a "if numeric then ____ else _____". Now I simply encapsulate my THEN _ ELSE _ portions into my Try _ Catch _.
try { $DaysInt = [int]$daysBack $EndDate = Get-Date $StartDate = $EndDate.AddDays(-1 * $DaysBack).ToShortDateString() } catch { $StartDate = Get-Date $daysback -Format g -ErrorAction silentlycontinue if ($StartDate -ne $null) { Write-Host "you entered a date" $StartDate $EndDatestr = (Read-Host "Specify an End Date (enter for today)").trim() if ($enddatestr -eq "") { $EndDate = Get-Date } else { $endDate = Get-Date $EndDateStr } } }
No comments:
Post a Comment