Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Today's post is less about anything in particular than it is about jotting a few things down for personal reference.
I learned a couple of things over the last week while developing a tool. I'm sure I learned them once before, but as a person with finite storage and recall capacity, this tidbits were replaced by something I perceived to be of more timely import at the time (such as my kids' birthday gifts, picking up a suit at the cleaners, a really great Detroit style pizza recipe I've finally put the finishing touches on, and how I've recently become a fan of grass-fed butter (well, technically butter made from milk produced by grass-fed cows, since you can't really get butter to eat anything successfully)).
So, without further ramblings ...
Using Get-Random with an array input object
Since I haven't found a great PowerShell-only tool to generate Lorem Ipsum text (yes, I'm aware of the module in the PowerShell gallery, but found it lacked some of the finesse that I wanted), I decided to create one (the creation of necessity for another tool I'm working on). So, here's a simplified snippet of how I used Get-Random with a word list to create a string of text:
PS> $LoremIpsumText = @('lorem','ipsum','dolor','set','amit','do','preactus','coloron','duchartes','rampunct','finialis','rufrum')
PS> ((1..10) | % { Get-Random -InputObject $LoremIpsumText }) -join " "
lorem set ipsum preactus do ipsum do dolor set dolor
Pretty nifty. If you didn't follow along:
- (1..10) - A short-hand way to run a loop n number of times, incrementing by 1 each pass
- Get-Random -InputObject $LoremIpsumText - Instead of using -MininumValue and -MaximumValue or -SetSeed parameters for integer results, we can tell the cmdlet to use the values stored in $LoremIpsumText to be used a pool of values from which to pull
- -join " " - Let's just join them together with a space character
Using Get-Random to select a boolean value
Then, I wanted to find a way to select randomly between True and False. So, I tried a few things, and landed on this:
Get-Random -InputObject ([bool]$True,[bool]$False)
You can, of course, capture the result to a variable, which means you've now created a random(ish) boolean value.
Making a coin-flipper
Of course, now that you know you can use PowerShell to create a random(ish) True/False generator, you're probably dying for ways to apply this in your daily life.
I know I was.
So, have no fear, I've got a quick little way for you to now run a function to call heads or tails. Call it your own two-face app.
function CoinFlip
{
$Result = Get-Random -InputObject @([bool]$True, [bool]$False)
switch ($Result)
{
True { "Heads" }
False {"Tails" }
}
}
Whenever you need to choose between two restaurants, you can now pause the decision-making process, pull out your trusty CoinFlip function and leave the decision to fate and the will of Jeffrey Snover.
Or tacos. Always tacos.