Microsoft Command Line Standard

Topics: Developer Forum, Project Management Forum, User Forum
Developer
May 17, 2007 at 11:58 PM
I assume by now you've seen the new Microsoft Command Line Standard which sets out the standard for writing command line apps. While it's clearly based on the way they've written PowerShell, it is a spec that is "independent of any specific implementation of a shell, set of utilities or command creation technologies" and should really be used for any Command Line apps for DOS, too (especially since doing so would enable your app to function in a PowerShell pipeline as well). Anyway, it looks really interesting (and I can't help but think that perhaps the Linux command-line could benefit from apps implementing this standard too ;)

However, Appendix A – Standardized Verb Sets and Verb Names got my attention in particular, because it actually obsoletes a few of the Verbs that we've been using, and left me wondering if the spec is final ;). Specifically, Write is marked as obsolete in favor of Set and it's pair, Get, is to be used instead of the obsoleteRead ... and in addition, there's no mention of Out and Where is mentioned as an obsolete version of Resolve (which really made me wonder about this being a draft ;-) ). On top of this ... the spec actually says:

Required:
• Commands must use verbs from the list of standard verbs in Appendix A.

I'm not (yet) suggesting we should run out and change Write-Zip to Add-Zip and New-Zip and/or Set-Zip (which sounds wrong) ... but I think that ultimately, this list of 50 Verbs is intended to be final. Before we we go renaming things ... we should probably go comment on this post and wonder aloud about these verbs which were on this list but are now missing, as well as about the ones which were proposed not long ago but have been left out of this spec.
Coordinator
May 20, 2007 at 8:35 PM
Interesting document. The omission of "Out" as a standard verb has to be incorrect.
Developer
May 31, 2007 at 5:32 PM
I still haven't gotten any response on their blog, I guess I'll go look on usenet ... these default cmdlets would all be pretty funny as Add-* commands ... maybe they could be Add-To* ;-)

Out-Null
Out-Default
Out-Host
Out-File
Out-Printer
Out-String