Twitter Reply to: no link
I saw a recent Twitter #PowerShell post and while I wanted to respond to it on Twitter, I didn’t. I was opposed to what it said, but I didn’t feel it was my place to call anyone out in that fashion. That’s why there isn’t a link above, where they might’ve been otherwise.
The twitter post in which I’m referring indicated that a person was a “rebel” by not using an approved PowerShell verb. I saw the included :P, and that’s fine, but only if the author is joking about the whole thing — I didn’t get that they were.
To use an unapproved verb, especially while knowing you shouldn’t, is everything that PowerShell is trying to stay away from. Part of the success of PowerShell has been the consistency in which it’s been developed by Microsoft, and others. While you might consider yourself a rebel, I consider what you’re doing, a problem.
I will admit, there has been a time or two that I’ve struggled with the best option for my verb, but I’ve always found one. Here’s my recommendation if you are not satisfied with the list of approved verbs: Use an alias; don’t be a “rebel.”
Let’s say I have a function I want to invoke using the name Smack-Yourself, and it looks like this:
Function Smack-Yourself { Write-Output -Verbose "I've been smacked!" }
I can tell you without looking; smack is not an approved verb. We’ll check if it exists anyway.
PS C:\> Get-Verb -Verb Smack PS C:\>
Nope, this verb hasn’t (yet?) been approved by Microsoft.
Instead of using an unapproved verb, let’s give our function an approved verb and then make an alias we can use instead. There’s no best practice for aliases; name them whatever you want. As far as your function name, please stay consistent and follow the verb dash noun naming convention, using an approved verb.
Set-Alias -Name Smack-Yourself -Value Pop-Yourself Function Pop-Yourself { Write-Output -Verbose "I've been smacked!" }
In the example above, we’ve used Set-Alias to modify (or create) an alias, called Smack-Yourself. When run, this alias will ultimately execute the Pop-Yourself function, where Pop is an approved verb. Even if the approved verb you choose doesn’t perfectly align with the verb you wanted to use, you can use whatever you want, if you’re using an alias.
I agree. I have been known to use non-standard verbs occasionally in the past, but I’ve come around to your point of view. Only in aliases. 🙂