Update: There’s a Part II, read it next.
Here’s a quick one. For an upcoming project, I decided I may need a way to use Read-Host in combination with a previously set, default value. Here’s the working code I threw together in case it’s needed.
$User = 'tommymaynard'
If (($Result = Read-Host -Prompt "Press Enter for the last user [$User], or enter a new user") -eq '' -or $Result -eq $User) {
"You're using the previously used ""$User"" user."
} Else {
"You're using the previously unused ""$Result"" user."
}
I set my user to “tommymaynard,” and then the If statement executes. The execution pauses while the Read-Host cmdlet waits for my input. If I press Enter, the If portion runs indicating that I’m using the previously set value of “tommymaynard.” It’ll do that if I enter tommymaynard again, too. If I enter a new value, it indicates I’m using the new value.
While we’re here, let’s run the code with three possible values: nothing entered, tommymaynard entered, and a different user entered.
Press Enter for the last user [tommymaynard], or enter a new user:
You’re using the previously used “tommymaynard” user.
Press Enter for the last user [tommymaynard], or enter a new user: tommymaynard
You’re using the previously used “tommymaynard” user.
Press Enter for the last user [tommymaynard], or enter a new user: lsmith
You’re using the previously unused “lsmith” user.
And there it is, a super short post about using a previously set value for Read-Host.